Skip to content

Databricks rt sea main nightly - #9900

Closed
k-anshul wants to merge 6 commits into
mainfrom
databricks-rt-sea-main-nightly
Closed

k-anshul wants to merge 6 commits into
mainfrom
databricks-rt-sea-main-nightly

Conversation

@k-anshul

Copy link
Copy Markdown
Member

INSERT DESCRIPTION HERE

Checklist:

  • Covered by tests
  • Ran it and it works as intended
  • Reviewed the diff before requesting a review
  • Checked for unhandled edge cases
  • Linked the issues it closes
  • Checked if the docs need to be updated. If so, create a separate Linear DOCS issue
  • Intend to cherry-pick into the release branch
  • I'm proud of this work!

dey-abhishek and others added 6 commits September 11, 2026 12:02
Lakehouse//RT warehouses only speak the Statement Execution API (SEA) and
reject the Thrift protocol, so Rill (pinned to databricks-sql-go v1.10.0)
could not connect to them at all.

Bump databricks-sql-go v1.10.0 -> v1.15.1 (adds the SEA/kernel backend) and
auto-detect RT: on first connect the connector probes once and, if the
warehouse rejects Thrift, transparently switches to the SEA backend. The
decision is cached and shared by both the OLAP path and the warehouse ingest
path (effectiveDSN), so an RT warehouse works with no configuration. DBSQL
warehouses accept Thrift and are unchanged. A `use_kernel` connector property
(default false) is available as an explicit override.

The SEA backend exports Arrow C Data rather than IPC streams, so the bulk
ingest path in warehouse.go falls back from GetArrowIPCStreams to
GetArrowBatches (re-serialized to a self-contained Arrow IPC stream via the
driver's Arrow v12 writer, which the existing v18 ipc.Reader consumes) when
the driver returns ErrNotSupportedByKernel. The OLAP path already worked over
SEA.

information_schema.Lookup previously JOINed information_schema.tables and
columns; that join forces a shuffle that RT's Photon rejects
(PHOTON_INTERNAL_ERROR, retry unsupported), breaking the schema browser. Split
it into two filtered point-lookups (no shuffle); equivalent on DBSQL.

Adds unit tests for DSN resolution, the RT-detection predicate, and the
useKernel DSN helper, and documents the behavior.

Co-authored-by: Isaac <no-reply@databricks.com>
Adds TestOLAP_LakehouseRT, a live integration test that drives the full Rill
Databricks OLAP path against a Lakehouse//RT (Reyden) SQL warehouse over the
auto-detected SEA backend. The connector config passes only the DSN (no
use_kernel), so a passing query proves the Thrift->SEA autodetection end to end.

Because Lakehouse//RT speaks only SEA, the test requires the SEA-via-kernel
backend and carries //go:build databricks_kernel (CGO), excluding it from the
default Thrift-only build and the standard `go test -short ./...` CI job. It is
otherwise gated like the existing Databricks/Snowflake live tests: a leading
t.Skip disables it by default, testmode.Expensive keeps it out of normal runs,
and it needs RILL_RUNTIME_DATABRICKS_RT_TEST_DSN to point at an RT warehouse.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
@k-anshul k-anshul closed this Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants