Repository navigation
[coverage] Conformance findings: GEOSPATIAL-009 #504
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
- GEOSPATIAL-009 [sea]: SEA/kernel backend PANICS ("arrow: duplicate field with name") instead of reporting each column's own logical type by position when two result columns share one SQL output alias: newKernelRows imports the Arrow C schema via a name-keyed arrow.StructOf (ImportCArrowSchema in internal/backend/kernel/rows.go), crashing the caller's process
- failing test:
TestDuplicateColumnAliasReportsEachColumnOwnLogicalType(see the coverage PR diff undertests/)
- failing test:
- GEOSPATIAL-009: SEA/kernel backend PANICS ("arrow: duplicate field with name") instead of reporting each column's own logical type by position when a result has two columns sharing one SQL output alias: newKernelRows imports the Arrow C schema via a name-keyed arrow.StructOf (ImportCArrowSchema in internal/backend/kernel/rows.go), which rejects a legal duplicate alias and crashes the caller's process
Reproduce & Expected
GEOSPATIAL-009 — A result set may contain TWO columns with the SAME name — SQL permits duplicate output aliases — and the driver must report each column's own type by POSITION.
Reproduce:
SELECT 'plain' AS g, geom_0 AS g
FROM {catalog}.{schema}.geo_types_{unique} WHERE id = 1Expected (per the shared spec):
- result has exactly 1 row(s)
- result has 2 column(s)
- col 0 is named
g - col 1 is named
g - col 0, row 0 == 'plain' (type Utf8)
- full assertion contract:
result:
- row_count: 1
- column_count: 2
- column:
index: 0
name: g
- column:
index: 1
name: g
- column:
index: 0
row: 0
type: Utf8
equals: plain
- geo_logical_type:
index: 1
type_name: GEOMETRY
type_text: GEOMETRY(0)
- geo_logical_type:
index: 0
geospatial: falseContext
- The behavior was first fixed in a DIFFERENT driver — reference PR: feat: support geospatial results on the kernel path databricks-sql-python#990 — 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/1857
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity