Skip to content

[SEA-NodeJS] (3/3) INTERVAL type parity + operation-lifecycle depth#411

Open
msrathore-db wants to merge 1 commit into
msrathore/sea-execution-resultsfrom
msrathore/sea-operation-lifecycle
Open

[SEA-NodeJS] (3/3) INTERVAL type parity + operation-lifecycle depth#411
msrathore-db wants to merge 1 commit into
msrathore/sea-execution-resultsfrom
msrathore/sea-operation-lifecycle

Conversation

@msrathore-db
Copy link
Copy Markdown
Contributor

Third of three stacked PRs (base: 2/3 execution + results). Completes the SEA M0 foundation.

  • ArrowResultConverter — INTERVAL parity: formats Arrow Interval[YearMonth]/Interval[DayTime] and Duration (→Int64 via SeaArrowIpcDurationFix) into canonical Thrift strings (Y-M / D HH:mm:ss.fffffffff), byte-identical to the Thrift path.
  • Exhaustive operation-lifecycle coverage: seaCancel/seaClose/seaFinished idempotency, flag-set-before-await (cancel-mid-fetch), kernel-error mapping, neutral OperationStatus callback shape.
  • SeaIntervalParity tests build real Arrow IPC batches via flatbuffers and assert the formatted strings.

With this, SEA reaches M0 parity with Thrift. Replaces the single 8/8 #383.

Stack: 1/3 → 2/3 → 3/3

This pull request and its description were written by Isaac.

Third of three stacked PRs (base: [2/3] execution + results). Completes the
SEA foundation:

- ArrowResultConverter: INTERVAL parity. Formats Arrow Interval[YearMonth] /
  Interval[DayTime] and Duration (rewritten to Int64 by SeaArrowIpcDurationFix)
  into the canonical Thrift strings ("Y-M" / "D HH:mm:ss.fffffffff"), byte-
  identical to the Thrift path. Threads the Arrow field through convertArrowTypes
  so the duration-unit metadata is available at value-conversion time.
- Exhaustive operation-lifecycle coverage: seaCancel / seaClose / seaFinished
  idempotency, flag-set-before-await ordering (cancel-mid-fetch), kernel-error
  mapping, and the neutral OperationStatus callback shape.
- SeaIntervalParity tests build real Arrow IPC batches via flatbuffers and
  assert the formatted strings.

With this, SEA reaches M0 parity with Thrift (connect/auth → execute →
fetch → operation lifecycle → INTERVAL types). Replaces the single 8/8 PR #383.

Co-authored-by: Isaac
Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
@msrathore-db msrathore-db force-pushed the msrathore/sea-execution-results branch from 1ab03b7 to 33252ab Compare June 1, 2026 13:43
@msrathore-db msrathore-db force-pushed the msrathore/sea-operation-lifecycle branch from e79405d to d8bcc30 Compare June 1, 2026 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant