Releases: databricks/databricks-jdbc
Releases · databricks/databricks-jdbc
Release Databricks OSS JDBC driver version v1.0.6-oss
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.
Release Databricks OSS JDBC driver version v.1.0.5-oss
Added
- Support for token cache in OAuth U2M Flow using the configuration parameters:
EnableTokenCache
andTokenCachePassPhrase
. - Support for additional SSL functionality including use of System trust stores (
UseSystemTruststore
) and allowing self signed certificates (viaAllowSelfSignedCerts
) - Added support for
getImportedKeys
andgetCrossReferences
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.
v1.0.4-oss
[v1.0.4-oss] - 2025-04-14
Added
- Support for the connection parameter SocketTimeout has been added. By default, it is set to 900 seconds.
- Handle server returned Thrift version as part of open session response gracefully
- Added OWASP security check in the repository.
Updated
- Updated SDK to the latest version (0.44.0).
- Add descriptive messages in thrift error scenario
Fixed
- BigDecimal is now set correctly to NULL if null value is provided.
- Fixed issue with JDBC URL not being parsed correctly when compute path is provided via properties.
- Addressed CVE vulnerabilities (
CVE-2024-47535
,CVE-2025-25193
,CVE-2023-33953
) - Fix bug in preparedStatement decimal parameter in thrift flow.
v1.0.3-oss
Added
- Introduces a centralized timeout check and automatic cancellation for statements
- Allows specifying a default size for STRING columns (set to 255 by default) via
defaultStringColumnLength
connection parameter - Implements a custom retry strategy to handle long-running tasks and connection attempts
- Added support for Azure Managed Identity based authentication
- Adds existence checks for volumes, objects, and prefixes to improve operational coverage
- Allows adjusting the number of rows retrieved in each fetch operation for better performance via
RowsFetchedPerBlock
parameter - Allows overriding the default OAuth redirect port (8020) with a single port or comma-separated list of ports using
OAuth2RedirectUrlPort
- Support for custom headers in the JDBC URL via
http.header.<key>=<value>
connection parameter
Updated
- Removes the hard-coded default poll interval configuration in favor of a user-defined parameter for greater flexibility
- Adjusts the handling of NULL and non-NULL boolean values
Fixed
- Ensures the driver respects the configured limit on the number of rows returned
- Improves retry behaviour to cover all operations, relying solely on the total retry time specified via the driver URL parameter
- Returns an exception instead of -1 when a column is not found
v1.0.2-oss
Fixed
- Fixed columnType conversion for Variant and Timestamp_NTZ types
- Fix minor issue for string dealing with whitespaces
v1.0.1-oss
[v1.0.1-oss] - 2025-03-11
Note
This release has been deprecated due to an issue with processing String types in query results. Users are advised to upgrade to v1.0.2-oss or later.
Added
- Support for complex data types, including MAP, ARRAY, and STRUCT.
- Support for TIMESTAMP_NTZ and VARIANT data types.
- Extended support for prepared statement when using thrift DBSQL/all-purpose clusters.
- Improved backward compatibility with the latest Databricks driver.
- Improved driver performance for large queries by optimizing chunk handling.
- Configurable HTTP connection pool size for better resource management.
- Support for Azure Active Directory (AAD) Service Principal in M2M OAuth.
- Implemented java.sql.Driver#getPropertyInfo to fetch driver properties.
Updated
- Set Thrift mode as the default for the driver.
- Improved driver telemetry (opt-in feature) for better monitoring and debugging.
- Enhanced test infrastructure to improve accuracy and reliability.
- Added SQL state support in SEA mode.
- Changes to JDBC URL parameters (to ensure compatibility with the latest Databricks driver):
- Removed catalog in favour of ConnCatalog
- Removed schema in favour of ConnSchema
- Renamed OAuthDiscoveryURL to OIDCDiscoveryEndpoint
- Renamed OAuth2TokenEndpoint to OAuth2ConnAuthTokenEndpoint
- Renamed OAuth2AuthorizationEndPoint to OAuth2ConnAuthAuthorizeEndpoint
- Renamed OAuthDiscoveryMode to EnableOIDCDiscovery
- Renamed OAuthRefreshToken to Auth_RefreshToken
Fixed
- Ensured TIMESTAMP columns are returned in local time.
- Resolved inconsistencies in schema and catalog retrieval from the Connection class.
- Fixed minor issues with metadata fetching in Thrift mode.
- Addressed incorrect handling of access tokens provided via client info.
- Corrected the driver version reported by DatabaseMetaData.
- Fixed case-sensitive behaviour while fetching client info.
Release v0.9.9-oss to PuPr
[v0.9.9-oss] - 2025-01-03
Added
- Telemetry support in OSS JDBC.
- Support for fetching connection ID and closing connections by connection ID.
- Stream support implementation in the UC Volume DBFS Client.
- Hybrid result support added to the driver (for both metadata and executed queries).
- Support for complex data types.
- Apache Async HTTP Client 5.3 added for parallel query result downloads, optimizing query fetching and resource cleanup.
Updated
- Enhanced end-to-end testing for M2M and DBFS UCVolume operations, including improved logging and proxy handling.
- Removed the version check SQL call when connection is established.
Fixed
- Fixed statement ID extraction from Thrift GUID.
- Made volume operations flag backward-compatible with the existing Databricks driver.
- Improved backward compatibility of ResultSetMetadata with the legacy driver.
- Fix schema in connection string
Release v0.9.8-oss to PuPr
[v0.9.8-oss] - 2024-12-16
Added
- Run queries in async mode in the thrift client.
- Added GET and DELETE operations for the DBFS client, enabling full UC Volume operations (PUT, GET, DELETE) without spinning up DB compute.
Updated
- Do not send repeated DBSQL version queries.
- Skip SEA compatibility check if null or empty DBSQL version is returned by the workspace.
- Skips SEA check when DBSQL version string is blank space.
- Updated SDK version to resolve CVEs.
Fixed
- Eliminated the statement execution thread pool.
- Fixed UC volume GET operation.
- Fixed async execution in SEA mode.
- Fixed and updated the SDK version to resolve CVEs.
Release v0.9.7-oss to PuPr
[v0.9.7-oss] - 2024-11-20
Added
- Added GCP OAuth support: Use Google ID (service account email) with a custom JWT or Google Credentials.
- SQL state added in thrift flow
- Add readable statement-Id for thrift
- Added Client to perform UC Volume operations without the need of spinning up your DB compute
- Add compression for SEA flow
Updated
- Updated support for large queries in thrift flow
- Throw exceptions in case unsupported old DBSQL versions are used (i.e., before DBR V15.2)
- Deploy reduced POM during release
- Improve executor service management
Fixed
- Certificate revocation properties only apply when provided
- Create a new HTTP client for each connection
- Accept customer userAgent without errors
Release v0.9.6-oss to PuPr
[v0.9.6-oss] - 2024-10-24
Added
- Added compression in the Thrift protocol flow.
- Added support for asynchronous query execution.
- Implemented
executeBatch
for batch operations. - Added a method to extract disposition from result set metadata.
Updated
- Optimised memory allocation for type converters.
- Enhanced logging for better traceability.
- Improved performance in the Thrift protocol flow.
- Upgraded
commons-io
to address security vulnerability (CVE mitigation). - Ensured thread safety in
DatabricksPooledConnection
. - Set UBER jar as the default jar for distribution.
- Refined result chunk management for better efficiency.
- Enhanced integration tests for broader coverage.
- Increased unit test coverage threshold to 85%.
- Improved interaction with Thrift-server client.
Fixed
- Fixed compatibility issue with other drivers in the driver manager.