JDBC Driver for Apache Kafka

Build 25.0.9434

Changelog

General Changes

DateBuild
Number
Change
Type
Description
10/09/20259413Apache KafkaUpdated
  • Updated OpenSSL to 3.3.5.
10/06/20259410GeneralAdded
  • Support for parsing datetime formats using ".S" and ",S" for milliseconds and nanoseconds.
10/01/20259405JDBCAdded
  • Added the following methods to the cdata.jdbc.apachekafka.ApacheKafkaDriver class. If you pass these methods an exception with no error records, an InvalidArgumentException is thrown.
    • containsErrorSource: Returns true if the exception contains an error record for the provided source name, or false if otherwise.
    • getErrorCodeFromSource: Returns the numeric error code from the error record with the given source, or -1 if there is no error record from that source.
    • containsErrorCode: Returns true if the exception contains an error record with the provided error code, or false otherwise.
    • findErrorProperty: Returns the value of the property with the given name, or null if no property with that name is defined.
    • formatErrorRecords: Returns a string containing all the exception's error records. Includes the messages, codes, properties, and error location for each record.
09/12/20259386GeneralAdded
  • Added the IsInsertable, IsUpdateable, and IsDeleteable columns to the sys_tables table.
09/10/20259384GeneralChanged
  • All columns in statically defined Views are now reported as read-only.
09/03/20259377GeneralChanged
  • Corrected the behavior when IN criteria with NULL values are used in the projection part. It now returns NULL instead of 0. For example, "NULL IN (1,2)" returns "NULL".
09/01/20259375GeneralAdded
  • Added support for using the CAST function with infinity values. This function can cast "inf" and "-inf" to DOUBLE, FLOAT, or REAL.
08/25/20259368Apache KafkaAdded
  • Added the ExposeQueueMetadataColumns connection property, which determines whether the Partition, Offset, and Timestamp columns are exposed.
  • Added the option KafkaOAuthClient in the AuthScheme connection property. This authentication scheme supports KIP-768 OpenID authentication. Refer to "KIP-768: Extend SASL/OAUTHBEARER with Support for OIDC" in Kafka's documentation for more information.
08/21/20259364GeneralChanged
  • Report behavior change:
    • Fixed inconsistent string value comparisons in non-table queries.
    • For example, "SELECT 'A' = 'a'" previously returned false, but it now returns true.
08/13/20259356GeneralChanged
  • Changed the maximum number of pages held in memory from 15 to 5 for the page providers to decrease heap usage.
06/25/20259307GeneralRemoved
  • Removed the "ADLS Gen 1" value from the ConnectionType property.
06/20/20259302GeneralAdded
  • Created the following functions:
    • TEXT_ENCODE: encodes a string into a different charset (UTF8 → UTF7 and returns a binary array as the result).
    • TEXT_DECODE: takes a binary array and decodes it back into a string when provided the charset.
    • BASE64_ENCODE: takes a binary array and encodes it as a base64 string (varchar).
    • BASE64_DECODE: takes a base 64-encoded string and decodes it into a binary array.
06/18/20259300GeneralChanged
  • The internal code for exception handling has been refactored. Exception messages returned during certain error conditions may now have different wording or formatting.
06/11/20259293Apache KafkaAdded
  • Added support for a new property, AllowKeyOnlyRegistryTopics. This property specifies whether schema registry topics that have only a -key schema are exposed as tables. Previously a topic could not be available as a table unless it had a -value schema.
05/29/20259280Apache KafkaChanged
  • .NET editions now reference Confluent.Kafka 2.10.0 and its dependencies. See its NuGet page for a complete list: https://www.nuget.org/packages/Confluent.Kafka/.
  • Java editions now bundle: kafka-clients 4.0.0, lz4-java 1.8.0, slf4j-api 1.7.36, snappy-java 1.1.10.5, zstd-jni 1.5.6-6, jackson-annotations 2.16.2, jackson-core 2.16.2, jackson-databind 2.16.2, jackson-datatype-jdk8 2.16.2, jose4j 0.9.4, opentelemetry-proto 1.0.0-alpha, org.osgi.core 6.0.0, protobuf-java 3.25.5.

Removed
  • Java 11 is required due to updates in the kafka-clients dependency, which has removed support for Java 8. Users who utilize JDBC generally do not need to worry about this change, as everything is bundled together. Requiring a new Java runtime version represents a significant change.
05/27/20259278GeneralRemoved
  • Removed the "Proprietary" enum option from ProxyAuthscheme.
05/01/20259252Apache KafkaAdded
  • Added support for JSON Schemas that are not objects. JSON Schemas that allow non-object types are reported as a single column, similar to TypeDetectionScheme=MessageOnly.
03/11/20259201Apache KafkaChanged
  • Changed how topics with unsupported schema registry formats are reported. Now, if a registry schema is in an unsupported format (currently just PROTOBUF), the driver treats that the same as the SerializationFormat/MessageKeyType being set to binary mode. The message/key is treated as a binary blob and reported as a base64 value.
02/15/20259177GeneralAdded
  • Added support for converting unsigned integer types to the nearest signed data type that has enough precision to hold the unsigned value.This is done for JDBC only because it does not have support for unsigned data types.
12/17/20249117Apache KafkaAdded
  • Added support for reading data using multiple versions of Avro schemas from Confluent registries. Refer to the documentation for the SchemaMergeMode property to understand how different modes impact the data model and their applicable restrictions.
11/27/20249097GeneralAdded
  • Added ThreadId to LogModule output. Logfile lines now include the Thread ID associated with the action being performed.
11/20/20249090Apache KafkaAdded
  • Added support for Google Managed Service. For information on how to authenticate to Google Managed Service, see "Establishing a Connection."
11/05/20249075Apache KafkaChanged
  • The driver is updated to support Confluent.Kafka library version 2.6.0. This library only supports versions of .NET that support .NET Standard 2.0 (.NET Framework 4.6.1 and later, .NET Core 2.0 and later).
10/18/20249057Apache KafkaChanged
  • Due to a change in how we package libraries from the Kafka project, three libraries are now separately provided: zstd-jni, lz4-java, and snappy-java. Customers using JDBC now need to include the bundled JAR files and these three libraries on the JAVA classpath.
07/16/20248963Apache KafkaChanged
  • .NET editions now reference Confluent.Kafka 2.5.0 and its dependencies. See its NuGet page for a complete list: https://www.nuget.org/packages/Confluent.Kafka/
06/14/20248931Apache KafkaDeprecated
  • The AggregateMessages and ProduceMeta connection properties.
  • The RegistryType connection property. Use MessageKeyType or SerializationFormat to specify the type of schema.
06/11/20248928Apache KafkaChanged
  • The driver no longer exposes a ‘Producer’ table when TypeDetectionScheme=RowScan for use with the Topic connection property.

Deprecated
  • The Topic connection property is deprecated.
05/31/20248917Apache KafkaChanged
  • The AuthScheme property default is now None. Users who have been connecting with a username and password and have not previously set AuthScheme must now explicitly set AuthScheme=Plain.
  • The RegistryAuthScheme default is now None. Users who authenticate via any kind of registry authentication must now explicitly set a RegistryAuthscheme. (Previously, users were only rarely required to set a RegistryAuthScheme.)
05/14/20248900Apache KafkaDeprecated
  • The Topic connection property. The property is now redundant with the driver's support for dynamic metadata.
05/09/20248895GeneralChanged
  • The ROUND function previously did not accept negative precision values. That feature has now been restored.
05/08/20248894Apache KafkaChanged
  • Java editions now bundle: kafka-clients 3.7.0, lz4-java 1.8.0, slf4j-api 1.7.36, snappy-java 1.1.10.5, zstd-jni 1.5.5-6, Jackson 2.16.0 (jackson-annotations, jackson-core, jackson-databind, jackson-datatype-jdk8), jose4j 0.9.4, opentelemetry-proto 1.0.0-alpha, org.osgi.core 6.0.0, protobuf-java 3.23.4
05/03/20248889Apache KafkaAdded
  • Extend SerializationFormat and MessageKeyType to support the same primitive and complex types. The driver can now read and write message keys in structured formats (JSON, Avro, CSV, XML), and message values in primitive formats (binary integers, floats and strings).
  • Support SchemaRegistry type detection for Avro and JSON message keys, when using a Confluent schema registry.

Changed
  • Schema files created on previous versions of the driver must be re-recorded. The extra formats supported in SerializationFormat and MessageKeyType require metadata that is not part of older schema files.

Removed
  • Removed support for renaming CSV columns using schema files.
03/26/20248851Apache KafkaAdded
  • Added support for reading Avro decimal fields, as well as fixed-length binary fields generally. Decimal fields are reported as the SQL DECIMAL type. Fixed-length binary fields are reported as BINARY and decoded like the Avro bytes type.
  • Added support for resolving references within Avro schemas on Confluent schema registries.

Changed
  • Topics in Confluent schema registries that belong to contexts (with the ":." prefix) are no longer listed as tables. This matches the default behavior of the Confluent schema-registry library.
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
02/06/20248802Apache KafkaChanged
  • Java editions now bundle: kafka-clients 3.6.1, lz4-java 1.8.0, slf4j-api 1.7.36, snappy-java 1.1.10.5, zstd-jni 1.5.5-1, Jackson 2.13.5 (jackson-annotations, jackson-core, jackson-databind, jackson-datatype-jdk8), jose4j 0.9.3, org.osgi.core 6.0.0
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
11/13/20238717Apache KafkaChanged
  • Java editions now bundle: kafka-clients 3.6.0, lz4-java 1.8.0, slf4j-api 1.7.36, snappy-java 1.1.10.4, zstd-jni 1.5.5-1, Jackson 2.13.5 (jackson-annotations, jackson-core, jackson-databind, jackson-datatype-jdk8), jose4j 0.9.3, org.osgi.core 6.0.0
  • .NET editions now reference Confluent.Kafka 2.3.0 and its dependencies (check its NuGet page for a complete list)
10/27/20238700JDBCChanged
  • Added support for Connection.abort() method.
08/22/20238634Apache KafkaAdded
  • Added support for authenticating to Azure Event Hubs with OAuth. AzureAD, AzureServicePrincipal, AzureServicePrincipalCert, and AzureMSI are all supported.
08/03/20238615Apache KafkaChanged
  • ProduceMessage now uses MessageText/MessageBytes to provide the message body, with corresponding inputs for the key.

Removed
  • ProduceMessage no longer accepts input streams for providing raw keys and messages.
06/20/20238571GeneralAdded
  • Added the new sys_lastresultinfo system table.
04/25/20238515GeneralRemoved
  • Removed support for the SELECT INTO CSV statement. The core code doesn't support it anymore.
04/19/20238509Apache KafkaAdded
  • Added ProduceMessage stored procedure for producing messages. It can be used to publish raw messages to topics regardless of the connection TypeDetectionScheme.
  • Added support for binary message keys by setting MessageKeyType=binary.
03/14/20238473Apache KafkaAdded
  • Added support for reading and writing specific partitions. A SELECT that filters on a specific value (or set of values) from the Partition column will subscribe to just those partitions. This increases read performance when many partitions are present. An INSERT can provide a value for the Partition column to write a message to a partition instead of having it auto-assigned.
12/14/20228383GeneralChanged
  • Added the Default column to the sys_procedureparameters table.
11/22/20228361Apache KafkaAdded
  • Added support for detecting the correct serialization format when performing an INSERT. The driver will determine this from either the schema registry or by row scan, depending upon the TypeDetectionScheme property. This allows connections with SerializationFormat=AUTO to insert data when the serialization format is unknown or different across topics. Other values of SerializationFormat keep their old behavior and skip this format detection.
10/26/20228334Apache KafkaChanged
  • Updated the versions of the Kafka libraries used in both Java and .NET. JDBC now bundles kafka-clients 3.3.1 while ADO.NET is built against Confluent.Kafka 1.9.3. The new version of Confluent.Kafka only supports .NET Framework versions 4.6.2 and up. The supported versions for other .NET variants (.NET Standard and .NET 5+) are unaffected.
09/30/20228308GeneralChanged
  • Added the IsPath column to the sys_procedureparameters table.
08/05/20228252Apache KafkaAdded
  • Added support for CreateTablePartitions and CreateTableReplicationFactor. This allows CREATE TABLE to be used on smaller clusters, and to be tuned for better read throughput or higher failover redundancy.
07/18/20228234Apache KafkaAdded
  • Added support for ConsumerProperties and ProducerProperties options. These allow for direct configuration of the underlying Kafka client libraries, in cases where the driver doesn't expose its own version of a property.
06/11/20228197JDBCChanged
  • The method GetJDBCMinorVersion() and GetJDBCMajorVersion() return 4.2 as the supported JDBC major / minor version.
05/03/20228158Apache KafkaAdded
  • RegistryClientCert and related properties, as well as RegistryServerCert. These properties are used for the schema registry specifically and support the same SSL options as other providers. They are added to avoid confusion between what SSL properties apply to the schema registry vs. the Kafka broker.

Deprecated
  • The SSLKey, SSLCert and SSLCertPassword properties as well as TrustStorePassword and TrustStorePath. These hidden properties were required to connect to brokers via SSL, but they were specific to each edition and did not expose all of the certificate formats that the Kafka client libraries could accept.

Replacements
  • SSLClientCert and related properties, as well as SSLServerCert and related properties. Internally these configure the same Kafka client properties, but the names and values of these options more consistent with the registry SSL options. Only a subset of certificate types are supported due to limitations of the Kafka client libraries.
04/28/20228153JDBCChanged
  • Removed support for JRE 1.6. JRE 1.8 and above is now required.
04/20/20228145Apache KafkaAdded
  • Added support for Confluent-compatible Avro encoding with the UseConfluentAvroFormat option. The default format is still the Avro file block format, but setting this option allows the provider to produce messages which can be read and validated by Confluent tools and libraries.
04/07/20228132Apache KafkaChanged
  • Updated the versions of the Kafka libraries used in both Java and .NET. .NET now requires the following assemblies to be present at runtime: Confluent.Kafka (and librdkafka.redist) : 1.8.2.0 System.Memory: 4.5.2 System.Buffers: 4.5.1 System.Runtime.CompilerServices.Unsafe: 4.5.3
03/30/20228124Apache KafkaAdded
  • Added support for authenticating using SCRAM-SHA-512.
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.
12/13/20218017Apache KafkaRemoved
  • Removed unnecesary dependencies relating to embedded Kafka servers. This also removes the log4j component which was affected by the recent CVE reports.
10/27/20217970JDBCChanged
  • Added support for JDK 17
09/23/20217936Apache KafkaAdded
  • Added support for Authenticating with Kerberos on both JDBC and ADO editions.
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/26/20217908Apache KafkaAdded
  • Added support for AWS Glue Schema Registry service. Now we support Confluent and AWS Glue Schema Registry types.
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/12/20217863Apache KafkaRemoved
  • Removed the Topic static table. Previously it was used only to retrieve some static columns. Now it's no longer needed.
06/23/20217844Apache KafkaAdded
  • Added support for JSON Scheme type on SchemaRegistry mode. Now we support AVRO and JSON schema types.
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/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.

Copyright (c) 2025 CData Software, Inc. - All rights reserved.
Build 25.0.9434