PostGIS 3.5.3
2025/05/16

To take advantage of all postgis_sfcgal extension features SFCGAL 1.5+ is needed.
PostgreSQL 12-18 required. GEOS 3.8+ required. Proj 6.1+ required.

* Bug fixes *

- Do not complain about illegal option when calling shp2pgsql -?
  (Sandro Santilli, Giovanni Zezza)
- #5862, [topology] Prevent another topology corruption with
         TopoGeo_addPoint near almost collinear edges (Sandro Santilli)
- #5841, Change approach to interrupt handling to conform to PgSQL
         recommended practice (Paul Ramsey)
- #5855, Fix index binding in ST_DFullyWithin (Paul Ramsey)
- #5819, Support longer names in estimated extent (Paul Ramsey)
- Fix misassignment of result in _lwt_HealEdges (Maxim Korotkov)
- #5876, ST_AddPoint with empty argument adds garbage (Paul Ramsey)
- #5874, Line substring returns wrong answer (Paul Ramsey)
- #5829, geometry_columns with non-standard constraints (Paul Ramsey)
- #5818, [sfcgal] GT-244 Fix CG_IsSolid function (Loïc Bartoletti)
- #5885, Fix documentation about grid-based overlay operations (Sandro Santilli)
- For [sfcgal] SFCGAL 2.1.0+ prevent using deprecated functions (Regina Obe)

PostGIS 3.5.2
2025/01/18

To take advantage of all postgis_sfcgal extension features SFCGAL 1.5+ is needed.
PostgreSQL 12-17 required. GEOS 3.8+ required. Proj 6.1+ required.

* Bug fixes *

- #5677, Retain SRID during unary union (Paul Ramsey)
- #5833, pg_upgrade fix for postgis_sfcgal (Regina Obe)
- #5564, BRIN crash fix and support for parallel in PG17+
         (Paul Ramsey, Regina Obe)


PostGIS 3.5.1
2024/12/22

To take advantage of all postgis_sfcgal extension features SFCGAL 1.5+ is needed.
PostgreSQL 12-17 required. GEOS 3.8+ required. Proj 6.1+ required.

* Bug fixes *

- #5792, [topology] Prevent topology corruption with TopoGeo_addPoint near almost
         collinear edges (Sandro Santilli)
- #5795, [topology] Fix ST_NewEdgesSplit can cause invalid topology
         (Björn Harrtell)
- #5794, Fix crash in TopoGeo_addPoint (Sandro Santilli)
- #5785, [raster] ST_MapAlgebra segfaults when expression references
         a supernumerary rast argument (Dian M Fay)
- #5787, [topology] Check that ST_ChangeEdgeGeom doesn't change winding of rings
         (Sandro Santilli)
- #5791, Add legacy stubs for old transaction functions
         to allow pg_upgrade (Regina Obe)
- #5800, PROJ compiled version reading the wrong minor and micro
         (Regina Obe)
- #5790, Non-schema qualified calls causing issue with
         materialized views (Regina Obe)
- #5812, Performance regression in ST_Within (Paul Ramsey)
- #5815, Remove hash/merge promise from <> operator (Paul Ramsey)
- #5823, Build support for Pg18 (Paul Ramsey)

* Enhancements *

  - #5782, Improve robustness of min distance calculation (Sandro Santilli)
  - [topology] Speedup topology building when closing large rings with many
    holes (Björn Harrtell)
  - #5810, [tiger_geocoder] Update tiger geocoder to handle TIGER 2024 data (Regina Obe)

* Breaking Changes *

  - #5799, make ST_TileEnvelope clip envelopes to tile plane
           extent (Paul Ramsey)


PostGIS 3.5.0
2024/09/25

To take advantage of all postgis_sfcgal extension features SFCGAL 1.5+ is needed.
PostgreSQL 12-17 required. GEOS 3.8+ required. Proj 6.1+ required.

Many thanks to our translation teams, in particular:

Dapeng Wang, Zuo Chenwei from HighGo (Chinese Team)
Teramoto Ikuhiro (Japanese Team)
Andreas Schild (German Team)

* Breaking Changes *

  - #5546, TopoGeometry <> TopoGeometry is now ambiguous, to get
           the old behaviour, assuming your TopoGeometry objects
           are named tg1 and tg2, use: (
              id(tg1) <> id(tg2) OR
              topology_id(tg1) <> topology_id(tg2) OR
              layer_id(tg1) <> layer_id(tg2) OR
              type(tg1) <> type(tg2)
           ) (Sandro Santilli)
  - #5536, comments are not anymore included in PostGIS extensions
           (Sandro Santilli)
  - xmllint is now required to build comments (Sandro Santilli)
  - DocBook5 XSL is now required to build html (Sandro Santilli)
  - #5602, Drop support for GEOS 3.6 and 3.7 (Regina Obe)
  - #5571, Improve ST_GeneratePoints performance, but old
           seeded pseudo random points will need to be regenerated.
  - #5596, GH-749, Allow promoting column as an id
           in ST_AsGeoJson(record,..).
           Views and materialized views that use the ST_AsGeoJSON(record ..)
           will need rebuilding to upgrade to new signature
           (Jan Tojnar)
  - #5496, ST_Clip all variants replaced, will require
           rebuilding of materialized views that use them
           (funding from The National Institute for Agricultural
            and Food Research and Technology (INIA-CSIC)),
            Regina Obe)
  - #5659, ST_DFullyWithin behaviour has changed to
           be ST_Contains(ST_Buffer(A, R), B) (Paul Ramsey)
  - Remove the WFS_locks extra package. (Paul Ramsey)
  - #5747, GH-776, ST_Length: Return 0 for CurvePolygon (Dan Baston)
  - #5770, support for GEOS 3.13 and RelateNG. Most functionality
           remains the same, but new GEOS predicate implementation
           has a few small changes.
      - Boundary Node Rule relate matrices might be different when
        using the "multi-valent end point" rule.
      - Relate matrices for situations with invalid MultiPolygons
        with shared boundaries might be different. Run ST_MakeValid
        to get valid inputs to feed to the calculation.
      - Zero length LineStrings are treated as if they are the
        equivalent Point object.


* Deprecated signatures *

  - GH-761, ST_StraightSkeleton => CG_StraightSkeleton (Loïc Bartoletti)
  - GT-189, All SFCGAL functions now use the prefix CG_, with the old onesusing
            ST_ being deprecated. (Loïc Bartoletti)

* New Features *

  - Improvements in the 'postgis' script:
      - new command list-enabled
      - new command list-all
      - command upgrade upgrades all databases that need to be
      - command status reports status of all databases
    (Sandro Santilli)
  - #5742, expose version of PROJ at compile time (Sandro Santilli)
  - #5721, postgis_topology: Allow sharing sequences between different topologies (Lars Opsahl)
  - #5667, postgis_topology: TopoGeo_LoadGeometry (Sandro Santilli)
  - #5055, add explicit <> geometry operator to prevent non-unique
           error with <> and != (Paul Ramsey)
  - Add ST_HasZ/ST_HasM (Loïc Bartoletti)
  - GT-123, postgis_sfcgal: CG_YMonotonePartition, CG_ApproxConvexPartition,
            CG_GreeneApproxConvexPartition and CG_OptimalConvexPartition
            (Loïc Bartoletti)
  - GT-156, postgis_sfcgal: CG_Visibility (Loïc Bartoletti)
  - GT-157, postgis_sfcgal: Add ST_ExtrudeStraightSkeleton (Loïc Bartoletti)
  - #5496, postgis_raster: ST_Clip support for touched (Regina Obe)
  - GH-760, postgis_sfcgal: CG_Intersection, CG_3DIntersects, CG_Intersects,
            CG_Difference, CG_Union (and aggregate), CG_Triangulate, CG_Area,
            CG_3DDistance, CG_Distance (Loïc Bartoletti)
  - #5687, Don't rely on search_path to determine postgis schema
           Fix for PG17 security change (Regina Obe)
  - #5705, GH-767, ST_RemoveIrrelevantPointsForView  (Sam Peters)
  - #5706, GH-768, ST_RemoveSmallParts (Sam Peters)

* Enhancements *

  - #5550, Fix upgrades from 2.x in sandboxed systems (Sandro Santilli)
  - #3587, postgis_topology: faster load of big lines in topologies (Sandro Santilli)
  - #5670, postgis_topology: faster ST_CreateTopoGeo (Sandro Santilli)
  - #5531, documentation format upgraded to DocBook 5 (Sandro Santilli)
  - #5543, allow building without documentation (Sandro Santilli)
  - #5596, GH-749, Allow promoting column as an id
          in ST_AsGeoJson(record,..). (Jan Tojnar)
  - GH-744, Don't create docbook.css for the HTML manual,
            use style.css instead (Chris Mayo)
  - Faster implementation of point-in-poly cached index (Paul Ramsey)
  - Improve performance of ST_GeneratePoints (Paul Ramsey)
  - #5361, ST_CurveN, ST_NumCurves and consistency in
           accessors on curved geometry (Paul Ramsey)
  - GH-761, postgis_sfcgal: Add an optional parameter to CG_StraightSkeleton
            (was ST_StraightSkeleton) to use m as a distance in result (Hannes Janetzek, Loïc Bartoletti)
