pypi / databricks-sql-connector
databricks-sql-connector
What changed in databricks-sql-connector 3 to 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-15.
12 breaking2 security1 deprecations28 new APIs and options3 performance15 behavior and defaults16 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initdatabricks-sql-connector 456 changes
Breaking changes 6
Rejects an mTLS private key when no client certificate is supplied, and identifies missing or empty client certificate and key files in connection errors.
The minimum supported Python version is now 3.10; Python 3.8 and 3.9 are no longer supported.
The kernel wheel requires Python 3.10 or newer; on older interpreters the extra is a no-op and enabling the kernel raises ImportError.
The default for use_hybrid_disposition changes to False.
The SQLAlchemy dialect is now provided in a separate package, split from the core connector package.
Pyarrow is now an optional dependency; users who need Arrow must install pyarrow explicitly.
Security 2
Allows Apache Thrift 0.25.x, including security fixes while preserving support for large Thrift results.
Allows OAuthlib 4.x, including security fixes while preserving support for large Thrift results.
Deprecations 1
SEA is deprecated in favor of the kernel backend.
New APIs and options 17
Adds a kernel-only option, defaulting to False, that returns GEOMETRY / GEOGRAPHY values as SRID/WKB objects instead of WKT/EWKT strings.
Adds opt-in support, defaulting to False, for escaping catalog names in metadata queries on Thrift and kernel connections.
Kernel connections now support JWT private-key M2M and Azure Entra authentication.
Adds an option to enable token caching for kernel U2M authentication.
Adds an install extra for the native kernel client.
Kernel logs are available through Python logging under this logger.
Adds an opt-in per-connection kernel backend using the SEA HTTP transport; the default remains Thrift.
Adds a mode for complying with the Retry-After header.
SPOG routing now supports account-level vanity URLs.
Statement-level query_tags support is available for the SEA backend.
query_tags can now be specified as a dict when creating a connection.
execute methods now support a query_tags parameter.
A utility method was added to normalize the HTTP protocol in the HTTP path.
Adds a configuration option to disable transaction operations.
Adds support for multi-statement transactions.
A new session conf enables metric view metadata.
Adds token federation support for the Databricks SQL Python Driver.
Performance 2
Apache Thrift is lazy-loaded for kernel and SEA connections.
Telemetry latency logging is optimized to reduce overhead.
Behavior and default changes 13
Lakehouse Real-Time sessions retain session affinity.
Feature-flag values are shared across connections to the same workspace, with typed reads and coordinated refreshes.
When a warehouse rejects the default Thrift protocol with SQLSTATE KP001, the session is reopened on the kernel backend and that warehouse is remembered so later connections skip Thrift, unless a backend was explicitly chosen.
Kernel connections now forward telemetry, socket timeout, OAuth, identity-federation, and row-limit settings.
REMOVE staging operations no longer require this setting because removing a remote file does not touch the local filesystem.
Dependency constraints now allow pandas 3.x.
Telemetry unwraps TokenFederationProvider to report the inner authentication mechanism and flow.
PyArrow table concatenation now uses promote_options as the default.
The User-Agent header now includes AI coding agent detection.
Circuit breaker behavior changes using pybreaker.
Telemetry is batched at the host level to reduce rate limiting.
Telemetry is enabled by default.
Makes the Python telemetry event model consistent with JDBC.
Fixes and other changes 15
Re-fetching or concurrently polling async statements on the kernel backend preserves the originating session.
Fixes result fetching for queries that return duplicate column names.
Forwards
_pool_maxsizeto supported Databricks SQL Kernel versions.Fixes telemetry for asynchronous statements.
Empty metadata filters are now preserved.
On the Thrift backend, DML statements set
cursor.rowcountto the server's affected-row count;executemanyaggregates counts across parameter sets. SELECT and statements without a reported count still return -1.Reverts the Thrift 0.23.0 bump that broke installation on DBR LTS.
Aligns kernel behavior with Thrift for cursor state, metadata, DML rowcount, async state, cancellation, staging and volume operations, and structured error context.
Empty chunks are removed during CloudFetch concatenation.
SPOG org-id is extracted from the cluster http_path for non-Thrift requests.
Float inference now uses the 64-bit DoubleParameter instead of FloatParameter.
The dependency manager now handles PEP 440 compatible release syntax.
Fixed feature-flag endpoint retries in the gov region.
Added support for pandas versions below 2.4.0.
Added support for pandas 2.3.3 on Python versions below 3.14.
databricks-sql-connector 321 changes
Breaking changes 6
PyArrow concatenation now merges with promote options by default, which may affect how concatenated results are produced.
Native parameterized SQL queries are supported; they require DBR 14.2 and above.
The minimum pyarrow version is raised to 14.0.1 in response to CVE-2023-47248.
Python 3.7 is no longer supported.
The dialect supports SQLAlchemy 2.0 and above and drops support for SQLAlchemy 1.x.
Cloud fetch is enabled by default; set use_cloud_fetch=False when building databricks.sql.client to disable it.
New APIs and options 11
The SQLAlchemy dialect supports reading and writing composite keys.
The SQLAlchemy dialect supports reading and writing ForeignKeyConstraint.
The SQLAlchemy dialect supports writing Identity to tables for autoincrementing primary keys.
The SQLAlchemy dialect supports LIMIT and OFFSET for paging through results.
The SQLAlchemy dialect supports reading and writing PrimaryKeyConstraint.
A _retry_max_redirects configuration option is added.
The SQLAlchemy dialect adds support for the TIME type.
The SQLAlchemy dialect adds support for the TIMESTAMP type.
The SQLAlchemy dialect adds support for the TIMESTAMP_NTZ type.
The SQLAlchemy dialect adds support for the TINYINT type.
The SQLAlchemy dialect supports reading and writing from views.
Performance 1
The SQLAlchemy dialect caches metadata calls.
Behavior and default changes 2
_enable_v3_retries is set to True, and users are warned if they override it.
The SQLAlchemy dialect was completely rewritten.
Fixes and other changes 1
The SQLAlchemy dialect supports Numeric type scale and precision, such as Numeric(10,2).