JDBC Driver for Couchbase

Build 24.0.9060

Changelog

General Changes

DateBuild
Number
Change
Type
Description
08/05/20248983CouchbaseAdded
  • Added a new authscheme, JWT, to support JWT authentication.
  • Added 10 new connection properties to support JWT authentication: - JWTToken - JWTSubject - JWTIssuer - JWTAlgorithm - JWTExpiration - JWTKey - JWTKeyType - JWTClaims - JWTHeaders - CredentialsFileLocation
05/09/20248895GeneralChanged
  • The ROUND function previously did not accept negative precision values. That feature has now been restored.
03/15/20248840GeneralAdded
  • Created a new SQL function called STRING_COMPARE that provides java's String.compare() ability to SQL queries. Returns a number representative of the compared value of two strings
11/29/20238733GeneralChanged
  • The ROUND function doesn't accept the negative precision values anymore.

Changed
  • The returning types of the FDMonth, FDQuarter, FDWeek, LDMonth, LDQuarter, LDWeek functions are changed from Timestamp to Date.
  • The return type of the ABS function will be consistent with the parameter value type.
11/28/20238732GeneralAdded
  • Added the HMACSHA256 formatter to allow for secrets to be decoded if it is in base64 format
10/27/20238700JDBCChanged
  • Added support for Connection.abort() method.
06/20/20238571GeneralAdded
  • Added the new sys_lastresultinfo system table.
05/15/20238535CouchbaseAdded
  • Added support for parallelizing batch INSERT and UPSERT operations. MaxThreads determines the number of worker threads that the driver spawns when executing a batch operation. Parallelism happens within a single batch so for best results the batch size should be as large as possible.
04/25/20238515GeneralRemoved
  • Removed support for the SELECT INTO CSV statement. The core code doesn't support it anymore.
02/21/20238452CouchbaseAdded
  • Added support for Analytics views and tabular Analytics views. Tabular Analytics views use the metadata provided as part of the
    CREATE ANALYTICS VIEW
    DDL statement instead of performing rowscan. Supported column metadata includes column names, types, nullability, primary keys, and foreign keys. Both types of views have similar limitations to external Analytics collections (they do not support Document.Id or Document.TTL, and are not scanned for child tables).
12/14/20228383GeneralChanged
  • Added the Default column to the sys_procedureparameters table.
09/30/20228308GeneralChanged
  • Added the IsPath column to the sys_procedureparameters table.
06/11/20228197JDBCChanged
  • The method GetJDBCMinorVersion() and GetJDBCMajorVersion() return 4.2 as the supported JDBC major / minor version.
04/28/20228153JDBCChanged
  • Removed support for JRE 1.6. JRE 1.8 and above is now required.
02/25/20228091JDBCChanged
  • The method DatabaseMetaData.getTypeInfo() now returns all of the data types that the driver supports. Previously, it was returning only a portion of the data types. The types include: tinyint, smallint, int, bigint, float, double, numeric, decimal, bit, date, datetime, time, varchar, binary, uuid.
02/24/20228090JDBCChanged
  • Corrected the return value of method DatabaseMetaData.supportsOuterJoins(), which used to return an incorrect value.
01/10/20228045CouchbaseAdded
  • Added support for the NATIVEQUERY table function. This function can be used after a FROM to execute a query using Couchbase-native N1QL instead of SQL. For example,
    SELECT * FROM NATIVEQUERY('SELECT META(a).id, b.rowdata FROM abucket AS a UNNEST a.rows AS b')
    will execute the inner query directly on Couchbase and return the results. This will work even in tools which are not normally compatible with QueryPassthrough=true.
12/20/20218024CouchbaseAdded
  • Added support for UpdateNullValues. This provides control over whether NULL values written to doucments via UPDATE are stored as NULL in Couchbase, or are removed from the document.
10/27/20217970JDBCChanged
  • Added support for JDK 17
10/26/20217969CouchbaseAdded
  • Added support for N1Q transactions. They apply to all N1QL queries that are not triggered by metadata or stored procedures. They can be either disabled entirely (the default), enabled for explicit use only (like setAutoCommit(false) or BeginTransaction()), or for implicit use where a one-statement transaction is used when no explicit transaction is active on the connection. Connection properties were also added to control transaction durability and lifetime requirements.
  • Added the corresponding connection properties, UseTransactions, TransactionDurability, and TransactionTimeout.
09/13/20217926CouchbaseAdded
  • Added support for calling user-defined functions in N1QL and Analytics. Global functions may be called using their unscoped names (to_meters("geo.lat")) or their scoped names ("Default.to_meters"("geo.lat")). Scoped functions must be called using their fully qualified names, which are two-parts or three-parts in Analytics ("experiments.to_meters") or three-parts only in N1QL ("experiments.units.to_meters").
09/12/20217925JDBCRemoved
  • Removed the IS_READONLY, IS_KEY, NUMERIC_PRECISION, and DECIMAL_DIGITS columns from DatabaseMetadata.GetColumns(), as they are not part of the JDBC Specification. This information is still available via other metadata calls.
09/02/20217915GeneralAdded
  • Added support for the STRING_SPLIT table-valued function in the CROSS APPLY clause.
08/07/20217889GeneralChanged
  • Added the KeySeq column to the sys_foreignkeys table.
08/06/20217888GeneralChanged
  • Added the new sys_primarykeys system table.
07/23/20217874GeneralChanged
  • Updated the Literal Function Names for relative date/datetime functions. Previously, relative date/datetime functions resolved to a different value when used in the projection as opposed to the predicate. For example: SELECT LAST_MONTH() AS lm, Col FROM Table WHERE Col > LAST_MONTH(). Formerly, the two LAST_MONTH() methods would resolve to different datetimes. Now, they will match.
  • As a replacement for the previous behavior, the relative date/datetime functions in the criteria may have an 'L' appended to them. For example: WHERE col > L_LAST_MONTH(). This will continue to resolve to the same values that were previously calculated in the criteria. Note that the "L_" prefix will only work in the predicate - it not available for the projection.
07/14/20217865CouchbaseAdded
  • Added support for performing DML on nested child tables in NewChildJoinsMode, which completes our new relational model. You can now INSERT, UPDATE, and DELETE on every table exposed by the provider when NCJM is enabled.
  • Added support for creating collections via DDL. When the hidden UseCollectionsForDDL property is enabled, CREATE TABLE "abucket.ascope.acollection"(...) will create the bucket, scope and collection which correspond to the table's name.
05/12/20217802CouchbaseAdded
  • Added support for creating collections via DDL. When the hidden UseCollectionsForDDL property is enabled, CREATE TABLE "abucket.ascope.acollection"(...) will create the bucket, scope and collection which correspond to the table's name.
04/25/20217785GeneralAdded
  • Added support for handling client side formulas during insert / update. For example: UPDATE Table SET Col1 = CONCAT(Col1, " - ", Col2) WHERE Col2 LIKE 'A%'
04/23/20217783GeneralChanged
  • Updated how display sizes are determined for varchar primary key and foreign key columns so they will match the reported length of the column.
04/16/20217776GeneralAdded
  • Non-conditional updates between two columns is now available to all drivers. For example: UPDATE Table SET Col1=Col2
04/16/20217776GeneralChanged
  • Reduced the length to 255 for varchar primary key and foreign key columns.

Changed
  • Updated index naming convention to avoid duplicates.
04/16/20217776GeneralChanged
  • Updated implicit and metadata caching to improve performance and support for multiple connections. Old metadata caches are not compatible - you need to generate new metadata caches if you are currently using CacheMetadata.
04/12/20217772CouchbaseAdded
  • Added support for the USE KEYS query construct. When executing an N1QL query, the driver will attempt to determine if it contains any eligible filters on Document.Id - if there are any they are removed from the WHERE clause and migrated to the USE KEYS clause. When this transformation is applied the resulting query can avoid index scans, which allows for more queries to be run without a primary index and improves execution speed.
03/12/20217741CouchbaseChanged
  • Updated AddDocuments and ManageIndices so the interface no longer operates based on column#1 values. AddDocuments now accepts either a single ID and Document or a SourceTable that refers to a #TEMP table (analogus to a normal bulk insert), while ManageIndices accepts JSON arrays for multiple values since these are mostly typed by hand and have very few elements.
01/19/20217689CouchbaseAdded
  • Added support for collections and scopes within Couchbase v7. This touches on a lot of the driver but here are the main aspects:
    • Tables are now generated for collections as well as buckets/datasets in both N1Ql and Analytics. They have dotted names similar to Analytics datasets. The only exceptions are N1QL default collections which just use the bucket name (the server calls them _default) and Analytics legacy dataverses (which have the same two-level hierarchy)
    • Queries can now use data from collections in all the usual ways (flavors, UNNEST, etc), and collection tables can now be used with DROP TABLE. Buckets still work with DROP TABLE as well but only in limited contexts to prevent users from deleting data outside the default collection.
    • Added new stored procedures for creating and dropping scopes/collections, and updated index management stored predures to report information about scopes/collections.
    • The Dataverse option now expects to follow SQL quoting rules, and can be either a single SQL identifier (foo) for legacy dataverses, or a two-level qualified identifier (foo.bar) for Analytics dataverses/scopes

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9060