How the geometry column is physically stored, which decides the SQL used to
(a) evaluate a spatial predicate and (b) project GeoJSON output.
wkb: GeoParquet 1.0/1.1 well-known-binary BLOB — wrap with
ST_GeomFromWKB(...).
native: Parquet-native GEOMETRY / GEOGRAPHY logical type (Parquet
2.11, Mar 2025) — DuckDB reads it as a GEOMETRY, used directly.
geojson: GeoParquet GeoJSON encoding (string) — wrap with
ST_GeomFromGeoJSON(...).
geoarrow-point / geoarrow-linestring / geoarrow-polygon /
geoarrow-multipoint / geoarrow-multilinestring /
geoarrow-multipolygon: GeoParquet 1.1 native single-geometry
encodings (geo.columns[].encoding). DuckDB exposes these as nested
STRUCT/LIST columns, not a GEOMETRY value — there is no DuckDB
spatial expression for them. Geometry projection is decoded in JS by
@honua/sdk-js/geoparquet's native decoder (native-geometry.ts, built
on src/columnar/geoarrow.ts); a spatial predicate against one of these
columns requires a GeoParquet 1.1 bbox-covering column
(GeometryColumnPlan.bboxColumn) and otherwise fails closed — see
geometryExpr.
How the geometry column is physically stored, which decides the SQL used to (a) evaluate a spatial predicate and (b) project GeoJSON output.
wkb: GeoParquet 1.0/1.1 well-known-binary BLOB — wrap withST_GeomFromWKB(...).native: Parquet-nativeGEOMETRY/GEOGRAPHYlogical type (Parquet 2.11, Mar 2025) — DuckDB reads it as aGEOMETRY, used directly.geojson: GeoParquetGeoJSONencoding (string) — wrap withST_GeomFromGeoJSON(...).geoarrow-point/geoarrow-linestring/geoarrow-polygon/geoarrow-multipoint/geoarrow-multilinestring/geoarrow-multipolygon: GeoParquet 1.1 native single-geometry encodings (geo.columns[].encoding). DuckDB exposes these as nestedSTRUCT/LISTcolumns, not aGEOMETRYvalue — there is no DuckDB spatial expression for them. Geometry projection is decoded in JS by@honua/sdk-js/geoparquet's native decoder (native-geometry.ts, built onsrc/columnar/geoarrow.ts); a spatial predicate against one of these columns requires a GeoParquet 1.1 bbox-covering column (GeometryColumnPlan.bboxColumn) and otherwise fails closed — see geometryExpr.