From 5c74f3d390f8469637ffd96e1ad3920062ccf6f9 Mon Sep 17 00:00:00 2001 From: Vikrant Puppala Date: Fri, 12 Jun 2026 09:30:29 +0000 Subject: [PATCH] Bump to version 4.3.0 Signed-off-by: Vikrant Puppala --- CHANGELOG.md | 5 +++-- pyproject.toml | 2 +- src/databricks/sql/__init__.py | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f827dcf6e..2423c20e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ # Release History -# 4.3.0rc1 (2026-06-11) -- Add optional Rust kernel backend for `use_kernel=True`, installable via the new `databricks-sql-connector[kernel]` extra (requires Python >= 3.10). Routes connections through the native `databricks-sql-kernel` client, with parity work across cursor-state tracking, metadata, logging (kernel logs surface through Python `logging`), staging fail-loud behavior, error context, and sync cancel (databricks/databricks-sql-python#824, #825, #830, #838, #839 by @vikrantpuppala) +# 4.3.0 (2026-06-12) +- **New: optional Rust kernel backend (`use_kernel=True`).** Adds an alternative connection path backed by the native [`databricks-sql-kernel`](https://pypi.org/project/databricks-sql-kernel/) client (a Rust core exposed via PyO3), installable with the new `databricks-sql-connector[kernel]` extra. The kernel talks to Databricks over the **SEA (Statement Execution API) HTTP transport** — not Thrift — with CloudFetch and inline-Arrow result fetching, so `use_kernel=True` gives you a modern SEA-native client through the same DB-API surface. Supports PAT, OAuth M2M, and OAuth U2M auth. Requires Python >= 3.10 (the kernel wheel is `cp310-abi3`); on older interpreters the extra is a no-op and `use_kernel=True` raises a clear `ImportError`. The default backend remains Thrift — opt in per connection. +- Kernel backend behavior is aligned with the Thrift backend so application code works the same either way: consistent cursor-state tracking (`query_id` / `get_query_state`), metadata (catalogs/schemas/tables/columns with JDBC-style filter semantics and case-insensitive `table_types`), DML `rowcount`, server-sourced async execution state, sync `cancel()`, fail-loud staging/volume operations, and structured error context (SQLSTATE, diagnostic info). Kernel logs surface through Python `logging` under the `databricks.sql.kernel` logger (databricks/databricks-sql-python#824, #825, #830, #838, #839 by @vikrantpuppala) - Revert the thrift 0.23.0 bump that broke installation on DBR LTS (ES-1960554) (databricks/databricks-sql-python#840 by @vikrantpuppala) # 4.2.7 (2026-06-02) diff --git a/pyproject.toml b/pyproject.toml index 17d7073ff..8d3d89d2e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "databricks-sql-connector" -version = "4.3.0rc1" +version = "4.3.0" description = "Databricks SQL Connector for Python" authors = ["Databricks "] license = "Apache-2.0" diff --git a/src/databricks/sql/__init__.py b/src/databricks/sql/__init__.py index eacc8f733..17beb7f11 100644 --- a/src/databricks/sql/__init__.py +++ b/src/databricks/sql/__init__.py @@ -71,7 +71,7 @@ def __repr__(self): DATE = DBAPITypeObject("date") ROWID = DBAPITypeObject() -__version__ = "4.3.0rc1" +__version__ = "4.3.0" USER_AGENT_NAME = "PyDatabricksSqlConnector" # These two functions are pyhive legacy