Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-python. 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-python) is fixed, then flips green as a tripwire.
Findings
- COMPLEX-015 [sea]: Kernel/SEA renders nested DOUBLE leaves with a shortest-decimal JSON writer (0.0001, 100, 1e21 expanded to plain digits) instead of the canonical forced-fraction, capital-'E', unsigned-unpadded-exponent layout
- failing test:
test_nested_double_leaf_text_spelling (see the coverage PR diff under tests/)
- COMPLEX-016 [sea]: Kernel/SEA renders a nested TIMESTAMP leaf as an ISO-8601 UTC instant with a fixed 6-digit fraction and a 'Z' ("2025-01-24T07:07:41.000000Z") instead of the session-timezone wall clock its top-level TIMESTAMP->text path emits
- failing test:
test_nested_timestamp_leaf_text_spelling (see the coverage PR diff under tests/)
- COMPLEX-015: Kernel/SEA backend renders nested DOUBLE leaves in a complex column's JSON text surface with a shortest-decimal writer (0.0001, 100, 1e21 expanded to plain digits) instead of the canonical forced-fraction, capital-'E', unsigned-unpadded-exponent layout the Thrift path and reference drivers emit
- COMPLEX-016: Kernel/SEA backend renders a nested TIMESTAMP leaf as an ISO-8601 UTC instant with a fixed 6-digit fraction and a 'Z' suffix ("2025-01-24T07:07:41.000000Z") instead of the session-timezone wall clock with trailing-zero fractions stripped that the same instant gets as a top-level TIMESTAMP read as text
Reproduce & Expected
COMPLEX-015 — Verify that a DOUBLE nested inside a complex type (STRUCT / ARRAY / MAP) and read through the driver's TEXT surface is spelled with the canonical layout: a forced fractional part, capital-'E' scienti…
Expected (per the shared spec):
- result has exactly 1 row(s)
- result has 3 column(s)
- full assertion contract:
result:
- row_count: 1
- column_count: 3
- nested_leaf_text_spelling:
column: struct_doubles
leaves:
sci: 3.2033798725730455E8
small: '1.0E-4'
whole: '100.0'
big: 1.0E21
tiny: '1.0E-7'
- nested_leaf_text_spelling:
column: array_doubles
leaves:
- '1.0'
- '-2.5'
- 1.0E7
- '9999999.0'
- '0.001'
- 1.0E100
- nested_leaf_text_spelling:
column: map_double
leaves:
d: '1.0E-4'
COMPLEX-016 — Verify that a TIMESTAMP nested inside a complex type (STRUCT / ARRAY / MAP) and read through the driver's TEXT surface is spelled as the session-timezone wall clock with trailing-zero fractional seco…
Expected (per the shared spec):
- result has exactly 1 row(s)
- result has 3 column(s)
- full assertion contract:
result:
- row_count: 1
- column_count: 3
- nested_leaf_text_spelling:
column: struct_ts
leaves:
ts: '2025-01-24 07:07:41'
- nested_leaf_text_spelling:
column: array_ts
leaves:
- '2024-01-15 12:30:45.123456'
- nested_leaf_text_spelling:
column: map_ts
leaves:
k: '2025-01-24 07:07:41'
Context
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-python. 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-python) is fixed, then flips green as a tripwire.
Findings
test_nested_double_leaf_text_spelling(see the coverage PR diff undertests/)test_nested_timestamp_leaf_text_spelling(see the coverage PR diff undertests/)Reproduce & Expected
COMPLEX-015 — Verify that a DOUBLE nested inside a complex type (STRUCT / ARRAY / MAP) and read through the driver's TEXT surface is spelled with the canonical layout: a forced fractional part, capital-'E' scienti…
Expected (per the shared spec):
COMPLEX-016 — Verify that a TIMESTAMP nested inside a complex type (STRUCT / ARRAY / MAP) and read through the driver's TEXT surface is spelled as the session-timezone wall clock with trailing-zero fractional seco…
Expected (per the shared spec):
Context