Releases: databricks/databricks-jdbc
Release list
v3.4.1
BREAKING CHANGES in 3.4.1
Metadata JDBC Spec Compliance
This release unifies metadata behavior across Thrift and SQL Exec API backends
using SQL SHOW commands for all metadata operations on SQL warehouses. Several
non-spec-compliant behaviors have been corrected. Review the changes below before
upgrading. These changes do not affect metadata on All-Purpose Clusters.
-
getTables/getColumns/getSchemas: Catalog parameter is now treated as
an exact-match identifier per JDBC spec. Passing%or wildcard patterns as
catalog previously returned results across all catalogs.
Usenullto search all catalogs. -
getTableswith empty types array: Now returns zero rows per JDBC spec.
Usenullto return all types. -
getSchemas: Now includesinformation_schemain results. Excludes
global_tempschema (previously returned by Thrift for all catalogs). -
getPrimaryKeys/getImportedKeys/getCrossReferencewith non-existent
catalog, schema, or table: Now returns emptyResultSetinstead of throwing
SQLException. -
getImportedKeysUPDATE_RULE/DELETE_RULE: Now returns3(NO_ACTION)
instead of0(CASCADE) for Thrift, and3instead ofnullfor SEA.
This reflects that Unity Catalog foreign keys are informational and non-enforced. -
PreparedStatement.setDate()now sends parameter type asDATEinstead of
TIMESTAMP. Previously,setDate()incorrectly serialized the parameter
type as TIMESTAMP due to a mapping bug. Server-side behavior is unchanged
(Databricks accepts both), but applications that inspect parameter types may
see the difference.
Default Behavior Changes
-
Native geospatial type support (
GEOMETRYandGEOGRAPHY) is now enabled
by default.getObject()now returnsIGeometry/IGeographyinstances
instead of EWKT strings. SetEnableGeoSpatialSupport=0to restore the
previous behavior. -
EnableArrowconnection property is deprecated and ignored. Arrow
serialization is now always enabled. SettingEnableArrow=0previously
disabled Arrow and forced columnar/JSON inline results; this value is now
ignored and a deprecation warning is logged. For JSON inline results with
SEA, disable CloudFetch viaEnableQueryResultDownload=0. Exception: on AIX
platforms and PowerPC architectures (os.archcontainsppc),EnableArrow
is still honoured and defaults to disabled due to known Arrow native library
compatibility issues.
Added
- Added result set heartbeat / keep-alive to prevent server-side result expiry during slow consumption. When enabled via EnableHeartbeat=1, the driver periodically polls the backend to keep the operation alive while the client reads results. Configurable interval via
HeartbeatIntervalSeconds(default 60s). Heartbeat automatically stops when results are fully consumed, ResultSet is closed, or the server returns a terminal state. Disabled by default due to cost implications (heartbeats keep the warehouse running). - Metadata operations now use SQL SHOW commands for both Thrift and SEA backends,
ensuring consistent behavior for SQL warehouses regardless of underlying
protocol. To revert to native Thrift metadata RPCs, setUseQueryForMetadata=0.
Updated
- Bump
databricks-sdk-javafrom 0.69.0 to 0.106.0. The driver's ownAgentDetectorinjection inUserAgentManager.setUserAgentis removed because SDK 0.106 now natively emits theagent/<name>User-Agent token via its built-inUserAgent.agentProvider(); keeping both layered produced a duplicate token on every SDK-routed request. The bootstrapbuildUserAgentForConnectorServicepath retains its ownAgentDetectorcall because it bypassesUserAgent.asString(). getColumnTypeName()for DECIMAL columns now preserves precision/scale suffix (e.g.,"DECIMAL(10,2)") consistently across both Thrift and SEA backends.EnableGeoSpatialSupportno longer requiresEnableComplexDatatypeSupport=1. Geospatial types (GEOMETRY, GEOGRAPHY) can now be enabled independently of complex type support (ARRAY, MAP, STRUCT).- Arrow schema deserialization failures (Thrift metadata path) now surface a dedicated driver error code
ARROW_SCHEMA_PARSING_ERROR(vendor code22000) and a proper SQLSTATE22000(Data Exception) on the thrownSQLException, instead of the genericRESULT_SET_ERROR(1004) and the enum name as SQLSTATE. The exception message is unchanged. - When a Statement is re-executed, the previous server-side operation is now explicitly closed before starting the new execution, preventing orphaned server-side operations when Statements are reused.
- Server-side operations are now closed proactively when
ResultSet.close()is called, improving resource utilization. The client-side Statement remains open and reusable for re-execution.
Fixed
- Bump shaded
jackson-corefrom 2.18.6 to 2.18.7 to address SNYK-JAVA-COMFASTERXMLJACKSONCORE-15907551 (DoS via oversized JSON documents bypassing size limits). Fixes #1436. - Bump shaded
httpclient5/httpcore5/httpcore5-h2from 5.3.1 to 5.5.2 to address CVE-2025-8671 (HTTP/2 stream-reset DoS inhttpcore5-h2). Fixes #1436. - Bump shaded
netty-buffer/netty-commonfrom 4.2.12.Final to 4.2.13.Final to clear OWASP scanner reports for the May 2026 batch of netty codec CVEs (CVE-2026-42577/42579/42580/42581/42582/42583/42584/42585/42586/42587, CVE-2026-44248, CVE-2026-41417, CVE-2026-42578). The driver does not use any netty HTTP/codec components — these vulnerabilities are not exploitable in this usage — but the bump silences the false-positive CPE matches. - Bump shaded
commons-configuration2from 2.10.1 to 2.15.0 to address CVE-2026-45205 (uncontrolled recursion when parsing untrusted YAML configurations). The driver does not parse untrusted YAML, so the practical risk is negligible. - Bump
lz4-javafromorg.lz4:lz4-java:1.8.1toat.yawk.lz4:lz4-java:1.10.1to address CVE-2025-66566 (information leak via uncleared output buffers in the safe/unsafe Java decompressors).org.lz4:lz4-java:1.8.1is a relocation-only POM that resolves toat.yawk.lz4:lz4-java:1.8.1, so the publisheddatabricks-jdbc-thinartifact previously pulled the vulnerable fork transitively. The upstreamorg.lz4GA is no longer maintained;at.yawk.lz4is the fork that received the fix. Fixes #1455. - Fix
PreparedStatement.getMetaData()crash (IllegalArgumentException) for SQL type aliases (VARCHAR, INTEGER, NUMERIC, DEC, REAL, NVARCHAR, NCHAR) returned by DESCRIBE QUERY - Fixed
DatabaseMetaData.getTables()in Thrift mode returning rows when called with an emptytypesarray. Per JDBC spec, empty types means "no types selected" and now correctly returns zero rows (matching SEA mode). - Fixed
?characters inside SQL comments, string literals, and quoted identifiers being incorrectly counted as parameter placeholders whensupportManyParameters=1.SQLInterpolatornow usesSqlCommentParserto locate only real placeholders. Fixes #1331. - Fixed
MetadataOperationTimeoutnot being applied when metadata operations use SHOW commands. Operations likegetTables,getSchemas, andgetColumnsnow respect theMetadataOperationTimeoutconnection property instead of hanging indefinitely with no timeout. - Reclassify transient server errors to standard SQL states (08S01, 40001) across all Thrift error sites. This ensures UC unavailability and concurrent modification errors surface consistently for better retry handling. Note: Dashboards and branching logic keyed on legacy XXUCC or 42000 must be updated.
- Fixed telemetry HTTP client socket leak that prevented CRaC checkpoint. After
Connection.close(), delayed telemetry flush tasks could re-create HTTP clients that were never closed, leaking TCP sockets. Fixes #1325. - Fixed client-side enforcement of
maxRowslimit. Whenstatement.setMaxRows()is set,ResultSet.next()now returns false once the row limit is reached, even if the server returns more rows. Applies to all result types (Thrift, SEA, inline, CloudFetch). - Bump shaded
bouncycastle(bcprov-jdk18on,bcpkix-jdk18on) from 1.79 to 1.84 to address CVE-2026-5598 (covert timing channel, severity 8.9) and two related MEDIUM CVEs (GHSA-wg6q-6289-32hp, GHSA-c3fc-8qff-9hwx). All three are unsurfaced by NVD-CPE scanners but visible to GHSA-backed scanners like OSV. - Bump shaded
libthriftfrom 0.19.0 to 0.23.0 to clear the May 2026 Apache Thrift advisory batch (GHSA-7pwc-h2j2-rjgj covering CVE-2026-41603/41604/41605/43869). The libthrift 0.21 release changedProcessFunction's generic signatures, which required regenerating the project's checked-in Thrift-generated Java sources with the matching compiler.
Known gaps
- With direct results explicitly disabled, large highly-compressible result sets may be silently truncated (fewer rows than expected, no error). Keep direct results enabled (the default) to avoid this; fix coming in an upcoming release.
v3.3.3
Fixed
- Fixed unresolvable Maven Central POM for the uber JAR. The published POM no longer declares a transitive dependency on the internal
databricks-jdbc-corecoordinate (which is not published to Maven Central), restoring resolution for downstream consumers (#1431).
v3.3.2 — DEPRECATED, use v3.3.3 instead
Warning
DEPRECATED — use 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/<product>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.
Release Databricks OSS JDBC driver version 3.3.1
Added
- Added
DatabaseMetaData.getProcedures()andDatabaseMetaData.getProcedureColumns()to discover stored procedures and their parameters. Queriesinformation_schema.routinesandinformation_schema.parametersusing parameterized SQL for both SEA and Thrift transports. - Added connection property
OAuthWebServerTimeoutto configure the OAuth browser authentication timeout for U2M (user-to-machine) flows, and also updated hardcoded 1-hour timeout to default 120 seconds timeout. - Added connection property
UseQueryForMetadatato use SQL SHOW commands instead of Thrift RPCs for metadata operations (getCatalogs, getSchemas, getTables, getColumns, getFunctions). This fixes incorrect wildcard matching where_was treated as a single-character wildcard in Thrift metadata pattern filters. - Added connection property
TreatMetadataCatalogNameAsPatternto control whether catalog names are treated as patterns in Thrift metadata RPCs. When disabled (default), unescaped_in catalog names is escaped to prevent single-character wildcard matching. This aligns with JDBC spec which treats catalogName as identifier and not pattern.
Updated
- Bumped
com.fasterxml.jackson.core:jackson-corefrom 2.18.3 to 2.18.6. - Fat jar now routes SDK and Apache HTTP client logs through Java Util Logging (JUL), removing the need for external logging libraries.
- Added Apache Arrow on-heap memory management for processing Arrow query results. Previously, Arrow result processing was unusable on JDK 16+ without passing the
--add-opens=java.base/java.nio=ALL-UNNAMEDJVM argument, due to stricter encapsulation of internal APIs. With this change, there is no JVM argument required - the driver automatically falls back to an on-heap memory path that uses standard JVM heap allocation instead of direct memory access. - Log timestamps now explicitly display timezone.
- [Breaking Change]
PreparedStatement.setTimestamp(int, Timestamp, Calendar)now properly applies Calendar timezone conversion using LocalDateTime pattern (inline withgetTimestamp). Previously Calendar parameter was ineffective. DatabaseMetaData.getColumns()with null catalog parameter now retrieves columns from all available catalogs when using SQL Execution API.
Fixed
- Fixed statement timeout when the server returns
TIMEDOUT_STATEdirectly in theExecuteStatementresponse (e.g. query queued under load), the driver now throwsSQLTimeoutExceptioninstead ofDatabricksHttpException. - Fixed Thrift polling infinite loop when server restarts invalidate operation handles, and added configurable timeout (
MetadataOperationTimeout, default 300s) with sleep between polls for metadata operations. - Fixed
DatabricksParameterMetaData.countParametersandDatabricksStatement.trimCommentsAndWhitespaceswith aSqlCommentParserutility class. - Fixed
rollback()to throwSQLExceptionwhen called in auto-commit mode (no active transaction), aligning with JDBC spec. Previously it silently sent a ROLLBACK command to the server. - Fixed
fetchAutoCommitStateFromServer()to accept both"1"/"0"and"true"/"false"responses fromSET AUTOCOMMITquery, since different server implementations return different formats. - Fixed socket leak in SDK HTTP client that prevented CRaC checkpointing. The SDK's connection pool was not shut down on
connection.close(), leaving TCP sockets open. - Fixed
IdleConnectionEvictorthread leak in long-running services. The feature-flags context shared per host was ref-counted incorrectly and held a stale connection UUID after the owning connection closed; on the next 15-minute refresh it silently recreated an HTTP client (and its evictor thread) that was never cleaned up. Connection UUIDs are now tracked idempotently and the stored connection context is updated when the owning connection closes. - Fixed Date fields within complex types (ARRAY, STRUCT, MAP) being returned as epoch day integers instead of proper date values.
- Fixed
DatabaseMetaData.getColumns()returning the column type name inCOLUMN_DEFfor columns with no default value.COLUMN_DEFnow correctly returnsnullper the JDBC specification. - Coalesce concurrent expired cloud fetch link refreshes into a single batch FetchResults RPC to prevent thread pool exhaustion under high concurrency.
v3.2.1
[v3.2.1] - 2026-02-16
Added
- Added streaming prefetch mode for Thrift inline results (columnar and Arrow) with background batch prefetching and configurable sliding window for improved throughput.
- Added
EnableInlineStreamingconnection parameter to enable/disable streaming mode (default: enabled). - Added
ThriftMaxBatchesInMemoryconnection parameter to control the sliding window size for streaming (default: 3). - Added support for disabling CloudFetch via
EnableQueryResultDownload=0to use inline Arrow results instead. - Added
EnableMetricViewMetadataconnection parameter to enable/disable Metric View table type (default: disabled). - Added
NonRowcountQueryPrefixesconnection parameter to specify comma-separated query prefixes that should return result sets instead of row counts.
Updated
- Enhanced error logging for token exchange failures.
- Geospatial column type names now include SRID information (e.g.,
GEOMETRY(4326)instead ofGEOMETRY). - Implemented lazy loading for inline Arrow results, fetching arrow batches on demand instead of all at once. This improves memory usage and initial response time for large result sets when using the Thrift protocol with Arrow format.
- Enhanced
enableMultipleCatalogSupportbehavior: When this parameter is disabled (enableMultipleCatalogSupport=0), metadata operations (such asgetSchemas(),getTables(),getColumns(), etc.) now return results only when the catalog parameter is eithernullor matches the current catalog. For any other catalog name, an empty result set is returned. This ensures metadata queries are restricted to the current catalog context. When enabled (enableMultipleCatalogSupport=1), metadata operations continue to work across all accessible catalogs.
Fixed
- Fixed
getTypeInfo()andgetClientInfoProperties()to return fresh ResultSet instances on each call instead of shared static instances. This resolves issues where calling these methods multiple times would fail due to exhausted cursor state (Issue #1178). - Fixed complex data type metadata support when retrieving 0 rows in Arrow format
- Normalized TIMESTAMP_NTZ to TIMESTAMP in Thrift path for consistency with SEA behavior
- Fixed complex types not being returned as objects in SEA Inline mode when
EnableComplexDatatypeSupport=true. - Fixed
StringIndexOutOfBoundsExceptionwhen parsing complex data types in Thrift CloudFetch mode. The issue occurred when metadata contained incomplete type information (e.g., "ARRAY" instead of "ARRAY"). Now retrieves complete type information from Arrow metadata. - Fixed timeout exception handling to throw
SQLTimeoutExceptioninstead ofDatabricksHttpExceptionwhen queries timeout during result fetching phase. This completes the timeout exception fix to handle both query execution polling and result fetching phases. - Fixed
getResultSet()to return null in case of DML statements to honour JDBC spec.
v3.1.1
Added
- Added token caching for all authentication providers to reduce token endpoint calls.
- We will be rolling out the use of Databricks SQL Execution API by default for queries submitted on DBSQL. To continue using Databricks Thrift Server backend for execution, set
UseThriftClientto1.
Updated
- Changed default value of
IgnoreTransactionsfrom0to1to disable multi-statement transactions by default. Preview participants can opt-in by settingIgnoreTransactions=0. Also updatedsupportsTransactions()to respect this flag.
Fixed
- [PECOBLR-1131] Fix incorrect refetching of expired CloudFetch links when using Thrift protocol.
- Fixed logging to respect params when the driver is shaded.
- Fixed
isWildcardto return true only when the value is*
Release 3.0.7
Updated
- Log timestamps now explicitly display timezone.
- [Breaking Change]
PreparedStatement.setTimestamp(int, Timestamp, Calendar)now properly applies Calendar timezone conversion using LocalDateTime pattern (inline withgetTimestamp). 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
SQLTimeoutExceptioninstead ofDatabricksSQLExceptionwhen 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_IDENTIFIERerror 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
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
INTERVALtypes. - Fix connection failure in restricted environments when
LogLevel.OFFis 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
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
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
IgnoreTransactionsconnection parameter can be set to1to disable or no-op transaction control methods. - Added a new config attribute
DisableOauthRefreshTokento control whether refresh tokens are requested in OAuth exchanges. By default, the driver does not include theoffline_accessscope. Ifoffline_accessis 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