From 8d9cf0c8805e6b977422fda4514c3f7359cdc35a Mon Sep 17 00:00:00 2001 From: Vu Anh Phung Date: Mon, 19 Oct 2026 22:53:47 +0000 Subject: [PATCH] chore(kernel): bump SQL kernel to 1.2.0 Signed-off-by: Vu Anh Phung --- KERNEL_REV | 2 +- go.mod | 14 ++++---- go.sum | 28 +++++++-------- .../kernel/include/databricks_kernel.h | 36 ++++++++++++++++--- 4 files changed, 53 insertions(+), 27 deletions(-) diff --git a/KERNEL_REV b/KERNEL_REV index 0c44de9b..bba7c6af 100644 --- a/KERNEL_REV +++ b/KERNEL_REV @@ -1 +1 @@ -9c2e2e6182fc7285bcfff39b2177941bc804897c +39ba84f5ab55c2b0bc874fd58a6f9215ee27cb23 diff --git a/go.mod b/go.mod index 8ce07746..78938e19 100644 --- a/go.mod +++ b/go.mod @@ -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 ) diff --git a/go.sum b/go.sum index 521bacb9..dca09b9b 100644 --- a/go.sum +++ b/go.sum @@ -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= diff --git a/internal/backend/kernel/include/databricks_kernel.h b/internal/backend/kernel/include/databricks_kernel.h index 6015c143..965c09b6 100644 --- a/internal/backend/kernel/include/databricks_kernel.h +++ b/internal/backend/kernel/include/databricks_kernel.h @@ -348,9 +348,9 @@ KernelStatusCode kernel_session_config_set_session_conf(KernelSessionConfig* con * representation. `enabled = true` requests Arrow * `struct` 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( @@ -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. @@ -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. + * On success, release `*out` with * `kernel_executed_statement_close`. */ KernelStatusCode kernel_statement_execute(kernel_statement_t* stmt, @@ -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 @@ -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) ─────────────────