Skip to content

feat(table): geometry and geography type + schema plumbing #990

@laskoviymishka

Description

@laskoviymishka

Parent: #989

First piece of the geo umbrella. Adds GeometryType{CRS string} and GeographyType{CRS string, Algorithm string} to types.go per the Iceberg primitive-types spec. Geometry has a crs only; Geography adds edge-interpolation-algorithm (one of spherical, vincenty, thomas, andoyer, karney).

Threading is the same shape as the recent UnknownType (#605) and TimestampNs (#594) additions: VisitGeometry / VisitGeography on SchemaVisitorPerPrimitiveType[T] in schema.go, JSON marshalling in types.go, partition-spec rejection (per spec), same-type-only promotion + CRS change disallowed in table/metadata_schema_compatibility.go, pass-through binary in table/substrait/substrait.go. PR #594 is a good template for the visitor wiring.

Tests cover type round-trip, schema-evolution add-geo-column, partition-spec rejection, and JSON marshalling for both with a non-default CRS. Stale PR #628 has a partial implementation of this slice that may be worth rebasing rather than restarting.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions