-
Notifications
You must be signed in to change notification settings - Fork 50
fix(kernel): preserve qualified interval parameter types #514
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
411bb59
dc80960
466fabf
192e60f
b297af6
52e3774
e611922
38c2b79
148901b
7c751de
ff19d5e
92a23ed
550c8e2
34d0161
b28e4dd
a6ae660
e84232b
16540c1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,6 +2,9 @@ | |
|
|
||
| ## Unreleased | ||
|
|
||
| - Kernel backend (`useKernel: true`): preserve qualified `INTERVAL MONTH` and | ||
|
cathleeny marked this conversation as resolved.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Medium — This entry advertises the fix as a user-facing behavior change but omits the published-native-package caveat that the sibling kernel entry directly below it carries. The PR moves all parameter binding off If Please either confirm |
||
| `INTERVAL DAY` parameter types on the SEA wire by using the kernel raw-parameter | ||
| path. | ||
| - Kernel backend source builds (`useKernel: true`, built from `KERNEL_REV`): `getTypeInfo()` now matches the Thrift backend's canonical 18-column, 20-row type-info result. Customer-facing npm installs require a follow-up bump to a published native package containing this Kernel change. ([databricks-sql-kernel#291](https://github.com/databricks/databricks-sql-kernel/pull/291), PECOBLR-4166) | ||
| - Kernel backend (`useKernel: true`): **Azure Entra (Azure AD) auth is now threaded through the kernel path.** On `authType: 'databricks-oauth'`: **U2M** (no secret) always routes to `OAuthU2m` — the kernel runs one cloud-blind in-house workspace-federated browser flow (it uses the workspace's OIDC-discovered authorize endpoint verbatim), which works against Azure workspaces, so Azure U2M forwards the in-house app (`databricks-sql-connector`) + `sql offline_access` scopes exactly like AWS/GCP, regardless of `useDatabricksOAuthInAzure` (verified E2E against a live Azure workspace). **M2M** (secret): `useDatabricksOAuthInAzure: true` (or non-Azure) → `OAuthM2m` (workspace-OIDC client-credentials); an Azure host with `useDatabricksOAuthInAzure` absent/`false` → the Entra-direct Azure service-principal M2M (`AzureSpM2m`, the Entra SP creds ride `oauthClientId`/`oauthClientSecret`, `azureTenantId` optional and auto-discovered when omitted). On a non-Azure host `useDatabricksOAuthInAzure` is inert. The `AzureSpM2m` path requires a `databricks-sql-kernel` native module that exposes the Azure SP surface — landed on `main` via [databricks-sql-kernel#282](https://github.com/databricks/databricks-sql-kernel/pull/282) (which the pinned `KERNEL_REV` `ef1a6f2` carries; the surface was originally proposed in [#280](https://github.com/databricks/databricks-sql-kernel/pull/280), which never reached `main`); U2M works on any kernel build. (PECOBLR-4141 / PECOBLR-4120) | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| 628abd6f5045897efcadb38ec77a1e9e0c23544e | ||
|
cathleeny marked this conversation as resolved.
|
||
| bb4a0770673926201d386d1d9295da8d4bf459aa | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -298,11 +298,10 @@ export default class KernelSessionBackend implements ISessionBackend { | |
| } | ||
|
|
||
| const execOptions: KernelNativeExecuteOptions = {}; | ||
| if (positionalParams !== undefined) { | ||
| execOptions.positionalParams = positionalParams; | ||
| } | ||
| if (namedParams !== undefined) { | ||
| execOptions.namedParams = namedParams; | ||
| // Raw binding preserves qualified SQL types such as INTERVAL MONTH. | ||
| const rawParams = positionalParams ?? namedParams; | ||
| if (rawParams !== undefined) { | ||
|
cathleeny marked this conversation as resolved.
cathleeny marked this conversation as resolved.
|
||
| execOptions.rawParams = rawParams; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Medium — The driver now forwards parameters only through The loader comment itself acknowledges |
||
| } | ||
| // NB: `queryTimeout` is intentionally NOT forwarded — it is a no-op on kernel | ||
| // (SQL Warehouses use `STATEMENT_TIMEOUT`; mapping it to `wait_timeout` would | ||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.