Back to changelog

Changelog

Spatial columns land in Redshift as native GEOMETRY

connectors

Geometry columns from PostGIS, MySQL, and SQL Server are now created in Redshift as GEOMETRY with the source SRID, and pre-created GEOMETRY and GEOGRAPHY columns load directly.

Redshift has native GEOMETRY and GEOGRAPHY types, but Artie wrote spatial values as GeoJSON in a SUPER column. That meant converting on every query, and if you pre-created a GEOMETRY column yourself, the load failed with unsupported data type: "geometry".

New columns from geometry sources (PostGIS, MySQL, SQL Server) are now created as GEOMETRY, and Artie keeps the parsed geometry and its SRID through the pipeline, so a geometry(Point, 4326) at the source is a GEOMETRY with SRID 4326 in Redshift. Loads write hex EWKB, and merges stage spatial columns as GEOMETRY and cast to GEOGRAPHY where the target column is GEOGRAPHY. Redshift only accepts SRID 4326 in a GEOGRAPHY column, so a source with a different SRID needs a GEOMETRY target. Existing SUPER and VARCHAR columns keep their type and keep receiving GeoJSON, so nothing changes for tables you already have, and source columns typed geography are still created as SUPER for now. Values over Redshift's 1,048,447-byte GEOMETRY limit load as NULL with a warning rather than failing the batch.

One related fix for every destination: an update that left a large PostGIS geometry untouched used to halt the pipeline, because Postgres sends a placeholder for unchanged TOASTed values and the geometry converter rejected it. The placeholder now passes through and the stored value is kept.

This is for teams replicating location or shape data into Redshift.

Why this matters

  • Run Redshift spatial functions directly on replicated columns, no casting from JSON
  • The spatial reference system travels with the data
  • Pre-created GEOMETRY and GEOGRAPHY columns just work