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
Addresses the 8 review threads on PR #410. Validated against a live
warehouse (results-e2e parity gate + interval-duration-e2e + execution-e2e
all pass) plus new/updated unit tests.
- SeaOperationLifecycle: rethrowKernelError now delegates to the canonical
decodeNapiKernelError, so cancel/close errors get the same fidelity as
fetch errors — the sqlState remap (envelope field is `sqlState`, the old
code read `sqlstate` and dropped it), the kernelMetadata namespace, and
the strict `startsWith` sentinel match (was a loose `indexOf >= 0`).
- SeaArrowIpc: replace decodeIpcBatch (full RecordBatchReader
materialization just to sum row counts) with countRowsInIpc, which reads
RecordBatch header `length` via MessageReader and skips bodies — no
vector decode. Removes ~2x Arrow decode CPU + transient allocation on the
fetch hot path (the converter still re-decodes for values). SeaResultsProvider
switched to it.
- SeaArrowIpc: hermetic unit tests (tests/unit/sea/SeaArrowIpc.test.ts) for
the framing walk, no-op/garbage rewrite paths, the row-count path, and the
empty-schema guard. (The Duration-positive rewrite stays covered by the
live e2e — apache-arrow@13 can't construct a Duration column hermetically.)
- SeaOperationBackend: on a fetch-error cleanup close() that also fails, log
the failure at warn (statement may leak) instead of fully swallowing it —
the original fetch error is still surfaced.
- SeaSessionBackend: reject queryTags / useLZ4Compression /
stagingAllowedLocalPath with M0-style errors instead of silently ignoring
them (+ unit tests). Silent no-ops are the worst failure mode for callers.
- SeaArrowIpc: throw a typed HiveDriverError (not a raw TypeError) when an
IPC payload carries no schema.
- SeaArrowIpcDurationFix.readMessageAt: fail-closed guards for negative
metadataLength / bodyLength (was relying on subarray clamping).
- Fix stale `tests/integration/sea/...` doc refs → `tests/e2e/sea/`.
Co-authored-by: Isaac
Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
0 commit comments