Repository navigation
[coverage] Conformance findings: COMPLEX-016 #520
Copy link
Copy link
Open
Description
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-go. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-sql-go) is fixed, then flips green as a tripwire.
Findings
- COMPLEX-016 [sea]: SEA/kernel backend applies the session-zone conversion to nested TIMESTAMP_NTZ leaves: an NTZ leaf inside ARRAY/MAP/STRUCT renders 05:15:00.123456 instead of the literal's 09:15:00.123456 under America/New_York, while the top-level NTZ column is correct — the container walk forwards one session location to every child instead of resolving the render location per child field
- failing test:
TestNestedTimestampNtzKeepsItsWallClockInArrayMapAndStruct(see the coverage PR diff undertests/)
- failing test:
- COMPLEX-016: SEA/kernel backend applies the session-zone conversion to nested TIMESTAMP_NTZ leaves: under America/New_York an NTZ leaf inside ARRAY/MAP/STRUCT renders 05:15:00.123456 instead of the literal's 09:15:00.123456, while the top-level NTZ column is rendered correctly — the container walk forwards one session location to every child instead of resolving the render location per child field
Reproduce & Expected
COMPLEX-016 — Verify that under a NON-UTC session time zone a TIMESTAMP_NTZ leaf nested inside an ARRAY element, a MAP value, a STRUCT field, and a STRUCT inside a STRUCT keeps the exact wall clock the literal car…
Reproduce:
- Set the session time zone through whichever surface the driver exposes -- a
session parameter on connect (e.g. atimezonesession param) or, where no
such option exists,SET TIME ZONE 'America/New_York'on the same session
before the test query. A NON-UTC zone is REQUIRED: under a UTC session the
shifted and unshifted NTZ renderings coincide and the case proves nothing.
Expected (per the shared spec):
- result has exactly 1 row(s)
- full assertion contract:
result:
- row_count: 1
- timestamp_wall_clock:
path: ntz_array[0]
equals: '2024-06-15 09:15:00.123456'
- timestamp_wall_clock:
path: ntz_map['a']
equals: '2024-06-15 09:15:00.123456'
- timestamp_wall_clock:
path: ts_struct.ntz
equals: '2024-06-15 09:15:00.123456'
- timestamp_wall_clock:
path: ts_struct.inner.ntz
equals: '2024-06-15 09:15:00.123456'
- timestamp_instant:
path: ts_struct.zoned
equals: '2024-06-15T13:15:00.123456Z'
- struct_field:
column: ts_struct
field: label
equals: ptContext
- The behavior was first fixed in a DIFFERENT driver — reference PR: TIMESTAMP_NTZ is scanned as a zoned TIMESTAMP (#506) #510 — which seeded the shared language-neutral spec. This issue tracks the same conformance gap in databricks/databricks-sql-go; the reference PR is for cross-referencing the intended behavior, NOT a change to this repo.
- Coverage PR carrying the reproducing xfail test(s): https://github.com/databricks/databricks-driver-test/pull/1897
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity