Repository navigation
Closed
Description
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
- GEOSPATIAL-009 [thrift]: Thrift backend cannot fetch any result with duplicate column aliases: fetchall_arrow()'s pyarrow.concat_tables(promote_options="default") in utils.py raises ArrowInvalid "Can't unify schema with duplicate field names" (fetchall() too, via the same path), so a legal
SELECT 'x' AS g, geom AS gis unreadable — the kernel backend handles it fine, and the connector's own row conversion already renames to ordinals for exactly this reason- failing test:
test_duplicate_column_alias_reports_each_column_own_logical_type(see the coverage PR diff undertests/)
- failing test:
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 #990 — which seeded the shared language-neutral spec. This issue tracks the same conformance gap in databricks/databricks-sql-python; 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
Metadata
Metadata
Assignees
Labels
No labels
Activity
cathleeny commentedon Oct 20, 2026
Closing since its a duplicate of #989 (#989 is broader and more detailed, so keeping that one instead)