PostGIS 3.7.0rc2
The PostGIS Team is pleased to release PostGIS 3.7.0rc2! Best Served with PostgreSQL 19 Beta 3 , GEOS 3.15.0 , postgis_tiger_geocoder 2025.2 , and address_standardizer.
This version requires PostgreSQL 14 - 19beta3, GEOS 3.10 or higher, Proj 6.1+, and libgmp. To take advantage of all features, GEOS 3.15+ is needed. To take advantage of all SFCGAL features SFCGAL 2.3.0+ is needed. To use postgis_raster extension GDAL 3+ is required.
This release contains fixes since 3.7.0rc1 release.
-
Cheat Sheets:
This release is a release candidate of a major release, it includes bug fixes since PostGIS 3.6.4 and new features.
To build docs, first run visual examples and make sure you have a running PostgreSQL instance.
make -C regress visual-examples
- #5688, [topology] topology building functions now interpret tolerance 0 (old default) to really mean 0 and want -1 (new default) to mean “use topology precision” (Sandro Santilli)
- #6024, Remove support for PostgreSQL 12 and 13 (Regina Obe)
- #6040, ST_GeoHash round trip through ST_GeomFromGeoHash (Paul Ramsey)
- #6053, [address_standardizer] Extension removed and moved to https://github.com/postgis/address_standardizer (Paul Ramsey)
- #6052, [tiger_geocoder] Extension removed and moved to https://git.osgeo.org/postgis/postgis_tiger_geocoder (Regina Obe)
- #6079, Remove support for GEOS < 3.10 (Sandro Santilli)
- #1793, Remove ST_MemCollect aggregate (Darafei Praliaskouski)
- GH-848, CG_AlphaShape now returns a MultiPolygon (Jean Felder)
- [docs] Python 3 and an SVG rasterizer (rsvg-convert preferred, GraphicsMagick or ImageMagick supported) now required for doc building (Darafei Praliaskouski)
- #1124, #2935, #3033, #4658, #4659, [loader] Rework loader arguments: shp2pgsql can create UNLOGGED tables and choose the feature id column name, shp2pgsql –drop-table can emit DROP TABLE before prepare output, raster2pgsql/shp2pgsql expose loader actions as long options, both loaders accept long aliases for existing options, and
- -if-not-exists makes creation actions idempotent (Darafei Praliaskouski)
- #4208, Add single-geometry variants of ST_MaxDistance and ST_LongestLine (Darafei Praliaskouski)
- [topology] FindVertexSegmentPairsBelowDistance function (Sandro Santilli)
- ST_CoverageEdges, returns MultiLinestring of distinct shared edges in polygonal coverage (Paul Ramsey)
- ST_MinimumSpanningTree, window function to calculate MST (Paul Ramsey)
- #5993, [topology] Add max_edges parameter to TopoGeo_AddLinestring (Sandro Santilli)
- #6001, support MultiLineString in ST_MakeLine (Paul Ramsey)
- #2858, ST_MMin and ST_MMax (Paul Ramsey)
- #5941, [raster] Support GDT_Float16 pixel type (Darafei Praliaskouski)
- #5992, Optimize GiST index for repeated edge subdivision in topology (Darafei Praliaskouski)
- #5702, Allow the compiler to detect the parallelism -flto=auto (Darafei Praliaskouski)
- #4798, ST_AsGeoJSON warns about duplicate property keys (Darafei Praliaskouski)
- #4222, [raster] ST_DumpAsPolygons honours PostgreSQL interrupts (Darafei Praliaskouski)
- #5889, [topology] Include representative locations in topology build errors (Darafei Praliaskouski)
- #2614, Use GEOSPreparedDistance and caching to accelerate ST_DWithin (Paul Ramsey)
- GH-839, ST_Multi support for TIN and surfaces (Loïc Bartoletti)
- #4398, Add ST_CatmullSmoothing smoothes but retains original vertices (Paul Ramsey)
- #4560, ST_3DInterpolatePoint for M interpolation from XYZ inputs (Paul Ramsey)
- #1291, ST_MakePolygon support for curved rings (Darafei Praliaskouski)
- GT-270, Add NURBSCurve (Loïc Bartoletti)
- #2863, Add ST_XSize, ST_YSize, ST_ZSize, and ST_MSize dimension helpers (Darafei Praliaskouski)
-
#2045, pgsql2shp query dumps no longer require temporary table privileges (Darafei Praliaskouski)
-
#1577, [loader] Report unsupported .zip archive input before trying to open shapefile sidecar files (Darafei Praliaskouski)
-
#3158, Move geometry and geography typmod bit helpers out of the public liblwgeom header (Darafei Praliaskouski)
-
#3776, [raster] Keep distinct 32-bit integer pixel values separate in ST_DumpAsPolygons (Darafei Praliaskouski)
-
#4678, [raster] Move st_sum4ma neighborhood callback to C (Darafei Praliaskouski)
-
#2116, [raster] Add ST_Value nearest-neighbor boundary options (Darafei Praliaskouski)
-
#2804, #4315, [raster] Support two-argument ST_MapAlgebra callbacks and pass callback call data as actual arguments (Darafei Praliaskouski)
-
#6062, [topology] Stop using recursive snapping, for improved robustness (Sandro Santilli)
-
#6065, Improved winding order computation robustness for rings having collapsed elements (Sandro Santilli)
-
#2137, [raster] Reuse matching source raster overviews in raster2pgsql -l (Darafei Praliaskouski)
-
#4749, Use point-in-polygon predicate fast paths for point-only GeometryCollections (Darafei Praliaskouski)
-
#2807, [raster] Preserve missing NODATA values in ST_MapAlgebra outputs (Darafei Praliaskouski)
-
#2832, [raster] Avoid padding single-tile raster2pgsql overviews when padding is not requested (Darafei Praliaskouski)
-
#2623, Generate a pgsql2shp GID field when exporting geometry-only shapefiles (Darafei Praliaskouski)
-
#2850, Preserve pgsql2shp numeric precision and scale in DBF metadata (Darafei Praliaskouski)
-
Build PostgreSQL extension modules with
-fno-semantic-interpositionwhen available so LTO can optimize same-DSO calls to exported PostGIS entry points directly instead of routing through the module PLT; in a local PostgreSQL 18pgbenchmicrobenchmark over 100k four-point groups this reducedST_Collectaggregate latency by about 4% (Darafei Praliaskouski) -
#5973, Install PostGIS utilities under
pg_config --bindirby default and documentpg_config-derived install paths more accurately (Darafei Praliaskouski) -
#2808, Clarify postgis_full_version() output when installed component scripts are newer than core scripts (Darafei Praliaskouski)
-
#2838, Emit valid X3D Coordinate nodes for 2D polygon output (Darafei Praliaskouski)
-
GH-899, [raster] Honor PostgreSQL interrupts in long-running GDAL progress callbacks (Darafei Praliaskouski)
-
#6073, #6074, Stabilize geography LRS endpoint interpolation and pole centroid regressions on 32-bit systems (Darafei Praliaskouski)
-
#2583, Preserve Z/ZM dimensional qualifiers in ST_AsEWKT output for TIN (Darafei Praliaskouski)
-
#4616, Detect pgsql2shp query keywords case-insensitively (Darafei Praliaskouski)
-
#1986, ST_GeomFromGML support for GML ArcString and curved polygon rings (Darafei Praliaskouski)
-
#4749, Use point-in-polygon predicate fast paths for point-only GeometryCollections, including ST_Disjoint (Darafei Praliaskouski)
-
#3676, Mark geometry and geography btree comparison support functions as leakproof (Darafei Praliaskouski)
-
GH-875, Allow ST_OrderingEquals joins to use hash and merge join plans (Darafei Praliaskouski)
-
#1168, [raster] Support curved geometry inputs in ST_AsRaster (Darafei Praliaskouski)
-
#1416, ST_AsX3D outputs NURBSCURVE as X3D NurbsCurve and linearizes other curve geometries (Darafei Praliaskouski)
-
#3705, ST_AsX3D outputs valid coordinate nodes for 2D multi-geometries and GeometryCollections (Darafei Praliaskouski)
-
GT-484, Use column-level SELECT privileges for metadata views (Arthur Bazin)
-
#1408, #2386, #2557, #2805, #2898, #3743, #4323, #4332, #4385, #5109, #5532, #5593, #5638, #5645, #5950, #6022, #6082, GH-1161, GT-584, Numerous doc enhancements (Darafei Praliaskouski)
-
GH-1175, Guard missing operands before reading node tags in spatial selectivity estimation (Maksim Korotkov)
-
#6118, Reject empty geometry type modifiers without an out-of-bounds read (Egor Ivkov)
-
Fix WKB and TWKB parser resource exhaustion on malformed input (Darafei Praliaskouski)
-
#6038, Avoid stale relation lookups in geometry_columns after topology objects are dropped (Darafei Praliaskouski)
-
#5487, Improve error detail for repeated upgrades after an incomplete deprecated-function cleanup (Darafei Praliaskouski)
-
#5975, Initialize skipped union-find cluster ids deterministically (Darafei Praliaskouski)
-
#5904, [topology] Avoid MinGW format warnings when logging topology ids (Darafei Praliaskouski)
-
GH-888, [sfcgal] Avoid stale detoasted geometry access in CG_Visibility empty-input handling for SFCGAL < 2.2 (Darafei Praliaskouski)
-
#3179, Mark truncated libpgcommon PostgreSQL messages instead of silently dropping the tail (Darafei Praliaskouski)
-
#6003, Avoid size_t formats in liblwgeom logging/error wrappers for MinGW builds (Darafei Praliaskouski)
-
GH-886, ST_ClusterRelateWin validates NULL relate matrices before detoasting them (Darafei Praliaskouski)
-
GH-889, ST_Relate pattern inversion avoids out-of-bounds access on short DE-9IM patterns (Darafei Praliaskouski)
-
GH-890, Avoid GIDX BRIN summary merges across mismatched dimensions (Darafei Praliaskouski)
-
#5959, Prevent histogram target overflow when analysing massive tables (Darafei Praliaskouski)
-
#6080, Avoid out-of-bounds hex WKB lookup for high-bit input bytes (Darafei Praliaskouski)
-
#4828, geometry_columns handles NOT VALID SRID checks without errors (Darafei Praliaskouski)
-
#6048, [raster] ST_Clip no longer crashes when clipping sparse band selections (Darafei Praliaskouski)
-
GH-894, [raster] Fix Float16 import, mixed nodata warping, band replacement cleanup, GDAL credential redaction, and Python GDAL compatibility (Darafei Praliaskouski)
After installing the binaries or after running pg_upgrade:
For PostGIS 3 series do below which will upgrade all your postgis extensions.
SELECT postgis_extensions_upgrade();
For PostGIS 2 series:
ALTER EXTENSION postgis UPDATE;
SELECT postgis_extensions_upgrade();
SELECT postgis_extensions_upgrade();
If you come across any issues, feel free to report via our ticket tracker or mailing list with details
View all tickets for 3.7.0rc2 milestone.