Skip to content

[coverage] Conformance findings: GEOSPATIAL-008 #1732

Closed

Description

@peco-engineer-bot

Summary

Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-jdbc. 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-jdbc) is fixed, then flips green as a tripwire.

Findings

  • GEOSPATIAL-008 [thrift, sea]: EnableGeoSpatialSupport=0 rewrites a geospatial column's reported type to STRING, losing the GEOMETRY/GEOGRAPHY identity; the option must change only the VALUE representation (WKT/EWKT text), never the reported logical type
    • failing test: testGeospatialRepresentationOptionSelectsStructuredOrTextValues (see the coverage PR diff under tests/)

Reproduce & Expected

GEOSPATIAL-008 — A driver that exposes a geospatial-representation connection option lets the CALLER pick which of this suite's two public shapes a GEOMETRY / GEOGRAPHY value arrives in, instead of leaving it to…

Reproduce:

SELECT geom_0,
       geog_4326,
       ST_GeomFromText(NULL) AS geom_null
FROM {catalog}.{schema}.geo_types_{unique} WHERE id = 1
SELECT geom_0,
       geog_4326,
       ST_GeomFromText(NULL) AS geom_null
FROM {catalog}.{schema}.geo_types_{unique} WHERE id = 1
SELECT geom_0,
       geog_4326,
       ST_GeomFromText(NULL) AS geom_null
FROM {catalog}.{schema}.geo_types_{unique} WHERE id = 1

Expected (per the shared spec):

  • completes without an exception
  • result has exactly 1 row(s)
  • col geom_null, row 0 is null
  • completes without an exception
  • result has exactly 1 row(s)
  • col geom_null, row 0 is null
  • completes without an exception
  • result has exactly 1 row(s)
  • [sea] CreateSession request session_confs.enable_geospatial_support is absent
  • [sea] ExecuteStatement request enable_geospatial_support is absent
  • full assertion contract:
result:
- label: enabled
  no_exception: true
- label: enabled
  row_count: 1
- label: enabled
  geo_value:
    column: geom_0
    row: 0
    srid: any
    wkb_non_empty: true
- label: enabled
  geo_value:
    column: geog_4326
    row: 0
    srid: 4326
    wkb_non_empty: true
- label: enabled
  geo_logical_type:
    column: geom_0
    type_name: GEOMETRY
    type_text: GEOMETRY(0)
- label: enabled
  geo_logical_type:
    column: geog_4326
    type_name: GEOGRAPHY
    type_text: GEOGRAPHY(4326)
- label: enabled
  column:
    name: geom_null
    row: 0
    is_null: true
- label: disabled
  no_exception: true
- label: disabled
  row_count: 1
- label: disabled
  geo_text_value:
    column: geom_0
    row: 0
    non_empty: true
    wkt_or_ewkt: true
- label: disabled
  geo_text_value:
    column: geog_4326
    row: 0
    non_empty: true
    wkt_or_ewkt: true
- label: disabled
  geo_logical_type:
    column: geom_0
    type_name: GEOMETRY
    type_text: GEOMETRY(0)
- label: disabled
  column:
    name: geom_null
    row: 0
    is_null: true
- label: omitted
  no_exception: true
- label: omitted
  row_count: 1
- label: omitted
  geo_text_value:
    column: geom_0
    row: 0
    non_empty: true
    wkt_or_ewkt: true
- geo_representation_matches:
    labels:
    - disabled
    - omitted
    columns:
    - geom_0
    - geog_4326
protocol:
  sea:
  - request_field:
      operation: CreateSession
      path: session_confs.enable_geospatial_support
      present: false
  - request_field:
      operation: ExecuteStatement
      path: enable_geospatial_support
      present: false

Context

Activity

  1. cathleeny commented on Oct 20, 2026

    @cathleeny
    Collaborator

    EnableGeoSpatialSupport=0 intentionally reports STRING/VARCHAR metadata to maintain backwards compatibility with existing applications. (See #1094)

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