Skip to content

[coverage] Conformance findings: GEOSPATIAL-009 #504

Open

Description

@peco-engineer-bot

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 under tests/)
  • 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 = 1

Expected (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: false

Context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions