You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Four statement-option / param-type gaps where the kernel + napi were already
ready but the node SEA layer didn't expose or thread them, so they were
silently dropped vs the Thrift backend.
- queryTags: `ExecuteStatementOptions.queryTags` is a public option but
`SeaSessionBackend.executeStatement` never forwarded it. Now serialised
JS-side via `serializeQueryTags` into the conf overlay's `query_tags` key
(the same wire shape the Thrift backend produces), so null-valued tags
round-trip — the napi `queryTags` field is a `HashMap<String,String>` that
can't represent nulls, and the kernel rejects setting both.
- rowLimit: new `ExecuteStatementOptions.rowLimit` → napi `rowLimit`
(SEA `row_limit`). SEA-only server-side cap; Thrift has no execute-time cap.
- statementConf: new `ExecuteStatementOptions.statementConf` → napi
`statementConf` (SEA `statement_conf`), the Thrift `confOverlay` equivalent;
queryTags merge into it under `query_tags`.
- TIMESTAMP_NTZ / TIMESTAMP_LTZ: added to `DBSQLParameterType` so callers can
bind timezone-explicit timestamp params. `toSparkParameter` already honours
an explicit type, and `SeaPositionalParams` passes the SQL type verbatim to
the kernel codec (which has the NTZ/LTZ arms). Without these a migrating
caller silently coerces NTZ/LTZ columns to TIMESTAMP.
231 SEA unit tests pass; verified live against pecotesting (rowLimit caps rows,
NTZ param round-trips, tags/conf accepted).
Co-authored-by: Isaac
Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
0 commit comments