databricks/databricks-jdbc v3.3.2
databricks/databricks-jdbc
Captured source
source ↗published Apr 28, 2026seen 5dcaptured 8hhttp 200method plain
v3.3.2 — DEPRECATED, use v3.3.3 instead
Repository: databricks/databricks-jdbc
Tag: v3.3.2
Published: 2026-04-28T09:58:05Z
Prerelease: no
Release notes: > [!WARNING] > DEPRECATED — use [v3.3.3](https://github.com/databricks/databricks-jdbc/releases/tag/v3.3.3) instead. > The published Maven Central POM for 3.3.2 declares an unresolvable transitive dependency on the internal com.databricks:databricks-jdbc-core coordinate (which is never published to Maven Central). Consumers bumping from 3.3.1 to 3.3.2 fail with Could not find artifact com.databricks:databricks-jdbc-core:jar:3.3.2. Tracking issue: #1431. Fixed in 3.3.3.
Added
- Added
CallableStatementsupport with IN parameters.Connection.prepareCall()now returns a workingDatabricksCallableStatementthat supports positional parameter binding and execution via{call proc(?)}JDBC escape syntax. OUT/INOUT parameters and named parameters throwSQLFeatureNotSupportedException. - Added AI coding agent detection to the User-Agent header. When the driver is invoked by a known AI coding agent (e.g. Claude Code, Cursor, Gemini CLI),
agent/is appended to the User-Agent string.
Updated
- Added support for using SQL SHOW commands for Thrift-mode metadata operations (
getTables,getColumns,getSchemas,getFunctions,getPrimaryKeys,getImportedKeys,getCrossReference). Enable by settingUseQueryForMetadata=1. This aligns Thrift metadata behavior with Statement Execution API (SEA) mode.
Fixed
- Improved error messages for cancelled statements: operations cancelled via
Statement.cancel()or closed connections now return SQL stateHY008(operation cancelled) instead of generic error codes, making it easier for applications to detect and handle cancellations. - Fixed race condition between chunk download error handling and result set close that could cause invalid state transition warnings (
CHUNK_RELEASED -> DOWNLOAD_FAILED) during Arrow Cloud Fetch operations in resource-constrained environments. - Fixed
EnableBatchedInsertssilently falling back to individual execution when table or schema names contain special characters (e.g., hyphens) inside backtick-quoted identifiers. Added a warn log when the fallback occurs. - Fixed
IntervalConvertercrash (IllegalArgumentException: Invalid interval metadata) when INTERVAL columns are returned via CloudFetch. Arrow metadata from CloudFetch uses underscored format (INTERVAL_YEAR_MONTH,INTERVAL_DAY_TIME) which the driver's regex did not accept. - Fixed
Statementbeing prematurely closed after queries that return inline results, which prevented re-execution,getResultSet(), andgetExecutionResult()from working. Statements now remain open and reusable until explicitly closed by the caller. - Fixed primitive types within complex types (ARRAY, MAP, STRUCT) not being correctly parsed when Arrow serialization uses alternate formats: TIMESTAMP/TIMESTAMP_NTZ as epoch microseconds or component arrays, and BINARY as base64-encoded strings.
- Fixed
PARSE_SYNTAX_ERRORfor column names containing special characters (e.g., dots) whenEnableBatchedInsertsis enabled, by re-quoting column names with backticks in reconstructed multi-row INSERT statements. - Fixed Volume ingestion for SEA mode, which was broken due to statement being closed prematurely.
- Fixed unclear
error: [null]messages during transient HTTP failures (e.g. 502 Bad Gateway) in Thrift polling. Error messages now include server error details and use SQL state08S01(communication link failure) so callers can identify retryable errors. Also fixedDatabricksError(RuntimeException) from SDK client being unhandled in CloudFetch download paths. - Fixed escaped pattern characters in catalogName for
getSchemas, as returned catalogName should be unescaped. - Fixed
getColumnClassName()returning null for VARIANT columns in SEA mode by adding VARIANT to the type system. - Fixed
getColumns()returningDATA_TYPE=0(NULL) for GEOMETRY/GEOGRAPHY columns in Thrift mode. Now returnsTypes.VARCHAR(12) when geospatial is disabled andTypes.OTHER(1111) when enabled, consistent with SEA mode. - Fixed
getCrossReference()returning 0 rows when parent args are passed in uppercase. The client-side filter used case-sensitive comparison against server-returned lowercase names.
Notability
notability 3.0/10Routine JDBC driver version release