Skip to content

Releases: databricks/databricks-jdbc

Release 3.0.7

18 Dec 19:32
4ed9125

Choose a tag to compare

Updated

  • Log timestamps now explicitly display timezone.
  • [Breaking Change] PreparedStatement.setTimestamp(int, Timestamp, Calendar) now properly applies Calendar timezone conversion using LocalDateTime pattern (inline with getTimestamp). Previously Calendar parameter was ineffective.
  • DatabaseMetaData.getColumns() with null catalog parameter now retrieves columns from all catalogs when using SQL Execution API, aligning the behaviour with thrift.
  • DatabaseMetaData.getFunctions() with null catalog parameter now retrieves columns from the current catalog when using SQL Execution API, aligning the behaviour with thrift.

Fixed

  • Fix timeout exception handling to throw SQLTimeoutException instead of DatabricksSQLException when queries timeout.
  • Removes dangerous global timezone modification that caused race conditions.
  • Fixed Statement.getLargeUpdateCount() to return -1 instead of throwing Exception when there were no more results or result is not an update count.
  • CVE-2025-66566. Updated lz4-java dependency to 1.10.1.
  • Fix INVALID_IDENTIFIER error when using catalog/schema/table names for SQL Exec API with hyphens or special characters in metadata operations (getSchemas(), getTables(), getColumns(), etc.) and connection methods (setCatalog(), setSchema()). Per Databricks identifier rules, special characters are now properly enclosed in backticks.
  • Fix Auth_Scope handling inconsistency in Azure U2M OAuth.

Release Databricks OSS JDBC driver version 3.0.6

12 Dec 09:28
6e1c164

Choose a tag to compare

Added

  • Added the EnableTokenFederation url param to enable or disable Token federation feature. By default it is set to 1
  • Added the ApiRetriableHttpCodes, ApiRetryTimeout url params to enable retries for specific HTTP codes irrespective of Retry-After header. By default the HTTP codes list is empty.

Updated

  • Added validation for positive integer configuration properties (RowsFetchedPerBlock, BatchInsertSize, etc.) to prevent hangs and errors when set to zero or negative values.
  • Updated Circuit breaker to be triggered by 429 errors too.
  • Refactored chunk download to keep a sliding window of chunk links. The window advances as the main thread consumes chunks. These changes can be enabled using the connection property EnableStreamingChunkProvider=1. The changes are expected to make chunk download faster and robust.
  • Added separate circuit breaker to handle 429 from SQL Exec API connection creation calls, and fall back to Thrift.

Fixed

  • Fix driver crash when using INTERVAL types.
  • Fix connection failure in restricted environments when LogLevel.OFF is used.
  • Fix U2M by including SDK OAuth HTML callback resources.
  • Fix microsecond precision loss in PreparedStatement.setTimestamp(int,Timestamp, Calendar) and address thread-safety issues with global timezone modification.
  • Fix metadata methods (getColumns, getFunctions, getPrimaryKeys, getImportedKeys) to return empty ResultSets instead of throwing exceptions when catalog parameter is NULL, for SQL Exec API.

Release 3.0.5

21 Nov 07:48
6317c1e

Choose a tag to compare

Added

  • Added support for high-performance batched writes with parameter interpolation:
    • supportManyParameters=1: Enables parameter interpolation to bypass 256-parameter limit (default: 0)
    • EnableBatchedInserts=1: Enables multi-row INSERT batching (default: 0)
    • BatchInsertSize=<SIZE>: Maximum rows per batch (default: 1000)
    • Note: Large batches are chunked for execution. If a chunk fails, previous chunks remain committed (no transaction rollback). Consider using staging tables for critical workflows.
  • Added Feature-flag integration for SQL Exec API rollout
  • Call statements will return result sets in response
  • Add a gating flag for enabling GeoSpatial support: EnableGeoSpatialSupport. By default, it will be disabled

Updated

  • Minimized OAuth requests by reducing calls in feature flags and telemetry.
  • Geospatial getWKB() now returns OGC-compliant WKB values.

Fixed

  • Fix: SQLInterpolator failing to escape temporal fields and special characters.
  • Fixed: Errors in table creation when using BIGINT, SMALLINT, TINYINT, or VOID types.
  • Fixed: PreparedStatement.getMetaData() now correctly reports TINYINT columns as Types.TINYINT (java.lang.Byte) instead of Types.SMALLINT (java.lang.Integer).
  • Fixed: TINYINT to String conversion to return numeric representation (e.g., "65") instead of character representation (e.g., "A").
  • Fixed: Complex types (Structs, arrays, maps) now show detailed type information in metadata calls in Thrift mode
  • Fixed: incorrect chunk download/processing status codes.
  • Shade SLF4J to avoid conflicts with user applications.

v3.0.4

13 Nov 19:15
5057a1a

Choose a tag to compare

Added

  • Added support for telemetry log levels, which can be controlled via the connection parameter TelemetryLogLevel. This allows users to configure the verbosity of telemetry logging from OFF to TRACE.
  • Added full support for JDBC transaction control methods in Databricks. Transaction support in Databricks is currently available as a Private Preview. The IgnoreTransactions connection parameter can be set to 1 to disable or no-op transaction control methods.
  • Added a new config attribute DisableOauthRefreshToken to control whether refresh tokens are requested in OAuth exchanges. By default, the driver does not include the offline_access scope. If offline_access is explicitly provided by the user, it is preserved and not removed.

Updated

  • Updated sdk version from 0.65.0 to 0.69.0

Fixed

  • Fixed SQL syntax error when LIKE queries contain empty ESCAPE clauses.
  • Fix: driver failing to authenticate on token update in U2M flow.
  • Fix: driver failing to parse complex data types with nullable attributes.
  • Fixed: Resolved SDK token-caching regression causing token refresh on every call. SDK is now configured once to avoid excessive token endpoint hits and rate limiting.
  • Fixed: TimestampConverter.toString() returning ISO8601 format with timezone conversion instead of SQL standard format.
  • Fixed: Driver not loading complete JSON result in the case of SEA Inline without Arrow

Releasing 3.0.3 to Maven

29 Oct 19:33

Choose a tag to compare

Fixing regression in increased traffic for Token endpoint

v1.0.9-oss

19 Aug 10:03
ed7483d

Choose a tag to compare

Added

  • Added support for providing custom HTTP options: HttpMaxConnectionsPerRoute and HttpConnectionRequestTimeout.
  • Add V2 of chunk download using async http client with corresponding implementations of AbstractRemoteChunkProvider and
    AbstractArrowResultChunk
  • Telemetry is being enabled by default, with a configuration to opt-out.

Updated

Fixed

  • Fixed Statement.getUpdateCount to return -1 for non-DML queries.
  • Fixed Statement.setMaxRows(0) to be interepeted as no limit.
  • Fixed retry behaviour to not throw an exception when there is no retry-after header for 503 and 429 status codes.
  • Fixed encoded UserAgent parsing in BI tools.
  • Fixed setting empty schema as the default schema in the spark session.

v1.0.8-oss

04 Aug 11:28
0edbeea

Choose a tag to compare

Added

  • Added DCO (Developer Certificate of Origin) check workflow for pull requests to ensure all commits are properly signed-off
  • Added support for SSL client certificate authentication via parameter: SSLTrustStoreProvider
  • Provide an option to push telemetry logs (using the flag ForceEnableTelemetry=1). For more details see documentation
  • Added putFiles methods in DBFSVolumeClient for async multi-file upload.
  • Added validation on UID param to ensure it is either not set or set to 'token'.
  • Added CloudFetch download speed logging at INFO level
  • Added vendor error codes to SQLExceptions raised for incorrect UID, host or token.

Updated

  • Column name support for JDBC ResultSet operations is now case-insensitive
  • Updated arrow to 17.0.0 to resolve CVE-2024-52338
  • Updated commons-lang3 to 3.18.0 to resolve CVE-2025-48924
  • Enhanced SSL certificate path validation error messages to provide actionable troubleshooting steps.

Fixed

  • Fixed Bouncy Castle registration conflicts by using local provider instance instead of global security registration.
  • Fixed Azure U2M authentication issue.
  • Fixed unchecked exception thrown in delete session
  • Fixed ParameterMetaData.getParameterCount() to return total parameter count from SQL parsing instead of bound parameter count, aligning with JDBC standards

v1.0.7-oss

25 Jun 14:13
bbaa069

Choose a tag to compare

Added

  • Added support for DoD (.mil) domains
  • Enables fetching of metadata for SELECT queries using PreparedStatement prior to setting parameters or executing the query.
  • Added support for SSL client certificate authentication via keystore configuration parameters: SSLKeyStore, SSLKeyStorePwd, SSLKeyStoreType, and SSLKeyStoreProvider.

Fixed

  • Updated JDBC URL regex to accept valid connection strings that were incorrectly rejected.
  • Updated decimal conversion logic to fix numeric values missing decimal precision.

v1.0.6-oss

29 May 17:13
ff2751a

Choose a tag to compare

Added

  • Support for fetching tables and views across all catalogs using SHOW TABLES FROM/IN ALL CATALOGS in the SQL Exec API.
  • Support for Token Exchange in OAuth flows where in third party tokens are exchanged for InHouse tokens.
  • Support for polling of statementStatus and sqlState for async SQL execution.
  • Support for REAL, NUMERIC, CHAR, and BIGINT JDBC types in PreparedStatement.setObject method.
  • Support for INTERVAL data type.

Fixed

  • Added explicit null check for Arrow value vector when the value is not set and Arrow null checking is disabled.

v.1.0.5-oss

28 Apr 11:05
2f2814c

Choose a tag to compare

Added

  • Support for token cache in OAuth U2M Flow using the configuration parameters: EnableTokenCache and TokenCachePassPhrase.
  • Support for additional SSL functionality including use of System trust stores (UseSystemTruststore) and allowing self signed certificates (via AllowSelfSignedCerts)
  • Added support for getImportedKeys and getCrossReferences in SQL Exec API mode

Updated

  • Modified E2E tests to validate driver behavior under multi-threaded access patterns.
  • Improved error handling through telemetry by throwing custom exceptions across the repository.

Fixed

  • Fixed bug where batch prepared statements could lead to backward-incompatible error scenarios.
  • Corrected setting of decimal types in prepared statement executions.
  • Resolved NullPointerException (NPE) that occurred during ResultSet and Connection operations in multithreaded environment.