Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion KERNEL_REV
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9c2e2e6182fc7285bcfff39b2177941bc804897c
39ba84f5ab55c2b0bc874fd58a6f9215ee27cb23
14 changes: 7 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,11 @@ require (
// matching per-platform kernel archive; upgrading the driver moves the kernel
// version. See the databricks-sql-kernel-bindings repo README.
require (
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_amd64 v1.1.0
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_arm64 v1.1.0
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_amd64 v1.1.0
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm v1.1.0
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm64 v1.1.0
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_amd64 v1.1.0
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_arm64 v1.1.0
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_amd64 v1.2.0
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_arm64 v1.2.0
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_amd64 v1.2.0
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm v1.2.0
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm64 v1.2.0
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_amd64 v1.2.0
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_arm64 v1.2.0
)
28 changes: 14 additions & 14 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,20 @@ github.com/coreos/go-oidc/v3 v3.5.0 h1:VxKtbccHZxs8juq7RdJntSqtXFtde9YpNpGn0yqgE
github.com/coreos/go-oidc/v3 v3.5.0/go.mod h1:ecXRtV4romGPeO6ieExAsUK9cb/3fp9hXNz1tlv8PIM=
github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_amd64 v1.1.0 h1:u9WZSUq5DSJiTToVc3GxcIxrjha4Dx18/aIuTZV8K3Y=
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_amd64 v1.1.0/go.mod h1:ceyJVgJAbNmkwc/2YMUNGuw2gd8nHZwZhP2xpN84VBg=
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_arm64 v1.1.0 h1:eMwl27KOcMbgn5MaNN0Z8cpgfTpNT8mBB3fZ1RG+yYU=
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_arm64 v1.1.0/go.mod h1:Cr0N6/u4qDUvdbtqm4sVflN4ZXO8qdDcxEBhF5WB9PI=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_amd64 v1.1.0 h1:KLpapD/9Cx8MDO1E/QB+6v++wb2nHNUTiTybhWfuWEc=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_amd64 v1.1.0/go.mod h1:KqeZQ/C/GoKAqoGL97/KT3BwLoqsxgSl3qJjje1F7TU=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm v1.1.0 h1:G70CDXSmnd1RE760g3IFaCrIcRgiCfhER8NdbHu03QY=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm v1.1.0/go.mod h1:5/HsocwYCRUmO4sZKnLTBb/W+ItCdp3Z8lfssNdfqhM=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm64 v1.1.0 h1:wY/yXgW3SJokXXA/zz9+/xH12GGjSSkpVD9aGm5OSlY=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm64 v1.1.0/go.mod h1:/1vEJKUPnrWx566kI/Ifl00GrhSyp798Ztl6rjtymCI=
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_amd64 v1.1.0 h1:jLAzjK4YTNMpWd/JOAXoLDREp4thQR39qPH5iFKxyiQ=
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_amd64 v1.1.0/go.mod h1:OaUVov84uK1IJz1gNk5TIoae0rj0vx+4N1qqRT88MdU=
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_arm64 v1.1.0 h1:bwwnCx3xh1p+Xn+qtVk7plG8BOdkaymOlQNJO5cfnOc=
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_arm64 v1.1.0/go.mod h1:Z8JD951Nk66P1J8hL6YhkyMp1YAnrRzxE2JMTYRblxc=
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_amd64 v1.2.0 h1:SWzQmYCCXIn0nqNoL26Fa/T0IDvqLQHepE8qjtYH7ho=
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_amd64 v1.2.0/go.mod h1:ceyJVgJAbNmkwc/2YMUNGuw2gd8nHZwZhP2xpN84VBg=
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_arm64 v1.2.0 h1:Xmk4kuZanXUP1XcbbNS/lWkF8la1fUxkmaFH086cyyw=
github.com/databricks/databricks-sql-kernel-bindings/lib/darwin_arm64 v1.2.0/go.mod h1:Cr0N6/u4qDUvdbtqm4sVflN4ZXO8qdDcxEBhF5WB9PI=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_amd64 v1.2.0 h1:1/y8Y2XLUNV+sO6JLkSG6h60HTP5PQzY39OahEcexwc=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_amd64 v1.2.0/go.mod h1:KqeZQ/C/GoKAqoGL97/KT3BwLoqsxgSl3qJjje1F7TU=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm v1.2.0 h1:ihRIRCoQLfPwrI191aOMvyZOwDzXrt0BHUeBcPdv3SY=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm v1.2.0/go.mod h1:5/HsocwYCRUmO4sZKnLTBb/W+ItCdp3Z8lfssNdfqhM=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm64 v1.2.0 h1:1l/0bX7N/aG0sQWx5hfKLz6TTrucjOAoDc+JKUk/U/E=
github.com/databricks/databricks-sql-kernel-bindings/lib/linux_arm64 v1.2.0/go.mod h1:/1vEJKUPnrWx566kI/Ifl00GrhSyp798Ztl6rjtymCI=
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_amd64 v1.2.0 h1:w06IYWHSxGeADa58I86TJo6WXaOiK5U7FBhgxmnKcTI=
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_amd64 v1.2.0/go.mod h1:OaUVov84uK1IJz1gNk5TIoae0rj0vx+4N1qqRT88MdU=
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_arm64 v1.2.0 h1:W5kZTkFFmxJ2otpCdafmlsTOqxf/aWh1+iYG5ltGZVc=
github.com/databricks/databricks-sql-kernel-bindings/lib/windows_arm64 v1.2.0/go.mod h1:Z8JD951Nk66P1J8hL6YhkyMp1YAnrRzxE2JMTYRblxc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand Down
36 changes: 31 additions & 5 deletions internal/backend/kernel/include/databricks_kernel.h
Original file line number Diff line number Diff line change
Expand Up @@ -348,9 +348,9 @@ KernelStatusCode kernel_session_config_set_session_conf(KernelSessionConfig* con
* representation. `enabled = true` requests Arrow
* `struct<srid: int32, wkb: binary>` values; `false` requests WKT / EWKT in
* Arrow UTF-8 values. Omitting this setter uses the enabled kernel default.
* Binary mode requires the native Reyden Arrow path; legacy text-only results
* cannot be reconstructed as WKB. This client-side setting is never sent to
* SEA. A raw `EnableGeoSpatialSupport` entry set through
* The kernel normalizes both standard-warehouse text and Reyden native Arrow
* results locally; this setting is never sent to SEA. A raw
* `EnableGeoSpatialSupport` entry set through
* kernel_session_config_set_session_conf remains server-bound and is forwarded
* unchanged. */
KernelStatusCode kernel_session_config_set_enable_geospatial_support(
Expand All @@ -361,6 +361,11 @@ KernelStatusCode kernel_session_config_set_enable_geospatial_support(
KernelStatusCode kernel_session_config_set_custom_header(KernelSessionConfig* config,
const char* name, const char* value);

/* Configure whether authenticated SEA responses may use HTTP compression.
* Disabled by default. */
KernelStatusCode kernel_session_config_set_sea_response_compression_enabled(
KernelSessionConfig* config, bool enabled);

/* Configure the total timeout for one HTTP request, from connection start
* through response-body completion. A separate 30s connection timeout also
* applies, so connection establishment is bounded by the shorter limit.
Expand Down Expand Up @@ -740,8 +745,8 @@ KernelStatusCode kernel_statement_set_query_tags(kernel_statement_t* stmt,
const char* query_tags);

/*
* Wait-for-result execution with the existing 600-second polling ceiling and
* no caller-supplied deadline. On success, release `*out` with
* Wait-for-result execution without an overall client polling deadline.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Low — This header sync changes the documented behavior of kernel_statement_execute: v1.1.0 said "the existing 600-second polling ceiling and no caller-supplied deadline," and v1.2.0 now says "without an overall client polling deadline." The driver's own Go doc comments still describe the old behavior and are now stale:

  • config.go:33-34: "nil uses kernel_statement_execute and retains its legacy 600s polling ceiling"
  • operation.go:266: "nil invokes the legacy API (and its existing 600s polling ceiling)"

Both comments now contradict the header shipped in this PR. A reader relying on them would believe that omitting ClientQueryTimeout caps execution at 600s, when per the updated kernel the legacy path no longer imposes that ceiling. Behavior of the Go code is unchanged (the routing logic doesn't depend on the ceiling), so this is documentation-only — but it should be updated alongside the header bump to avoid misleading the next reader.

* On success, release `*out` with
* `kernel_executed_statement_close`.
*/
KernelStatusCode kernel_statement_execute(kernel_statement_t* stmt,
Expand Down Expand Up @@ -771,6 +776,21 @@ KernelStatusCode kernel_statement_execute_with_timeout_ms(
KernelStatusCode kernel_statement_submit(kernel_statement_t* stmt,
kernel_executed_async_statement_t** out);

/* Submit-and-return with a client-side execution deadline in milliseconds.
* Zero selects unlimited execution; values above
* DATABRICKS_KERNEL_MAX_CLIENT_QUERY_TIMEOUT_MS return InvalidArgument. The
* deadline starts on entry and is retained by the returned async handle across
* status polls. If it expires before a terminal status is observed, status
* returns Timeout with SQLSTATE HYT00 and the kernel schedules best-effort
* cancel/close cleanup. One exception: if the deadline fires DURING the initial
* submit round-trip (before the server returns a statement id), no id is known
* yet, so no cancel/close can be scheduled; a statement the server may have
* created is left for session-close to reclaim. This window is small because
* submit uses wait_timeout=0s. Result fetching is outside this deadline. */
KernelStatusCode kernel_statement_submit_with_timeout_ms(
kernel_statement_t* stmt, uint64_t timeout_ms,
kernel_executed_async_statement_t** out);

/*
* Free the statement lifecycle owner. Does NOT free executed-handle
* boxes — each executed handle is a separate allocation that you must
Expand Down Expand Up @@ -949,6 +969,12 @@ KernelStatusCode kernel_result_stream_get_schema(kernel_result_stream_t* stream,
KernelStatusCode kernel_result_stream_next_batch(kernel_result_stream_t* stream,
struct ArrowArray* out_array,
struct ArrowSchema* out_schema);
/* Fetch one batch without waiting. Success with ready=false means provider
* work is still pending and leaves the Arrow outputs untouched. Success with
* ready=true transfers a batch, or an empty array at end-of-stream. */
KernelStatusCode kernel_result_stream_try_next_batch(
kernel_result_stream_t* stream, bool* ready, struct ArrowArray* out_array,
struct ArrowSchema* out_schema);
KernelStatusCode kernel_result_stream_close(kernel_result_stream_t* stream);

/* ─── Result-stream cancellation (detached canceller) ─────────────────
Expand Down
Loading