From git at osgeo.org Tue Sep 1 08:59:50 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 1 Sep 2026 08:59:50 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-19-ga767a934f Message-ID: <20260901155950.8A2EE1D62ED@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via a767a934f3cb14b3f1078846db56772ea31b056b (commit) from 1863d42cf91aaf5de7d78071f834a4836b1e43d8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a767a934f3cb14b3f1078846db56772ea31b056b Author: Regina Obe Date: Tue Sep 1 10:31:23 2026 -0400 DOC BUILDING warnings - If doc building is requested, note that Python 3 is now required - Fix typo in configure when checking for xmlint it gives a note about xmlcatalog - Fix the README.postgis and docs to note all dependencies diff --git a/NEWS b/NEWS index 8fa9ba9cb..fa9879877 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,174 @@ +PostGIS 3.7.0rc2 +2026/xx/xx + +This version requires GEOS 3.10+, PostgreSQL 14-19beta1, Proj 6.1+, and libgmp. +To take advantage of all postgis extension features, GEOS 3.15+ is needed. +To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed. + +* Breaking Changes * + + - #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) + +* New Features * + + - #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) + +* Enhancements * + + - #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-interposition` when + 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 18 `pgbench` microbenchmark over 100k four-point + groups this reduced `ST_Collect` aggregate latency by about 4% + (Darafei Praliaskouski) + - #5973, Install PostGIS utilities under `pg_config --bindir` by default + and document `pg_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) + +* Bug Fixes * + + - 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) + + + + + PostGIS 3.7.0rc1 2026/08/24 This version requires GEOS 3.10+, PostgreSQL 14-19beta2, Proj 6.1+, libgmp. @@ -194,170 +365,6 @@ These are only changes since 3.7.0alpha1. (Darafei Praliaskouski) -PostGIS 3.7.0dev -2026/xx/xx - -This version requires GEOS 3.10+, PostgreSQL 14-19beta1, Proj 6.1+, libgmp. -To take advantage of all features postgis extension features, GEOS 3.15+ is needed. -To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed. - -* Breaking Changes * - - - #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) - -* New Features * - - - #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) -* Enhancements * - - - #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-interposition` when - 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 18 `pgbench` microbenchmark over 100k four-point - groups this reduced `ST_Collect` aggregate latency by about 4% - (Darafei Praliaskouski) - - #5973, Install PostGIS utilities under `pg_config --bindir` by default - and document `pg_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) - -* Bug Fixes * - - - 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) - - PostGIS 3.6.0 2025/09/01 diff --git a/README.postgis b/README.postgis index 90f50c80d..5fe870f4f 100644 --- a/README.postgis +++ b/README.postgis @@ -2,7 +2,7 @@ PostGIS - Geographic Information Systems Extensions to PostgreSQL ================================================================= :Version: 3.7.0 -:Date: 2026-08-24 +:Date: 2026-09-01 :Website: https://postgis.net This distribution contains a module which implements GIS simple features, ties @@ -59,14 +59,16 @@ below dependencies (except for GTK): libsfcgal-dev \ libxml2-dev \ libxml2-utils \ + perl \ pkg-config \ protobuf-c-compiler \ xsltproc * PROJ (Required, Version 6.1 or higher): - The PROJ catographic projection library is required if you want to use the - ST_Transform() function to reproject features within the database. + The PROJ cartographic projection library is required for map projection / + datum transformation support such as the ST_Transform() function. It is a + hard build requirement; configure fails if it cannot be found. https://proj.org @@ -83,17 +85,19 @@ below dependencies (except for GTK): https://libgeos.org -* XML SUPPORT (Required, Version 2.5.0 or higher): +* XML SUPPORT / libxml2 (Required): The LibXML2 library is required to use the ST_GeomFromGML() and - ST_GeomFromKML() functionality. + ST_GeomFromKML() functionality. It is a hard build requirement; configure + fails if it cannot be found. http://xmlsoft.org/ * GMP (Required): The GMP arbitrary precision arithmetic library is required by PostGIS - topology support. + topology support. It is detected via pkg-config and has no fallback, so + ``pkg-config`` must be available for a default build. https://gmplib.org @@ -108,9 +112,11 @@ below dependencies (except for GTK): GNU gettext is used for loader and documentation translation support. It may be disabled with ``--with-gettext=no``. -* JSON-C (Optional, Version 0.9 or higher) +* JSON-C (Optional) JSON-C is used to import GeoJSON via the function ST_GeomFromGeoJson(). + It is enabled by default but optional; if it is not found configure only + warns and the build continues. Disable with ``--without-json``. http://github.com/json-c/json-c/wiki @@ -125,11 +131,13 @@ below dependencies (except for GTK): https://sfcgal.gitlab.io/sfcgal -* protobuf-c (Optional, Version 1.1.0 or higher) +* protobuf-c (Optional, Version 1.1.0 or higher, enabled by default) The protobuf-c library and compiler are required to enable ST_AsMVT and - ST_AsGeobuf output. Also, pkg-config is required to verify the correct - minimum version of protobuf-c. + ST_AsGeobuf output. Both the ``libprotobuf-c`` library and the ``protoc-c`` + compiler are needed; the compiler is a hard error if you request protobuf + support but cannot find it. Disable with ``--without-protobuf``. Also, + pkg-config is used to verify the correct minimum version of protobuf-c. https://github.com/protobuf-c/protobuf-c @@ -142,6 +150,23 @@ below dependencies (except for GTK): apt-get install libgtk2.0-dev +Documentation Building +---------------------- + +Building the documentation requires the following in addition to the apt +packages listed above (``docbook-xsl-ns``, ``libxml2-utils`` and ``xsltproc``): + +* Python 3 -- required to run the manual example tester that generates the + visual examples which HTML and PDF embed. Those SVGs come from running the + staged PostGIS build against a live PostgreSQL server via ``make -C regress + visual-examples``; no Python database driver is required (the tooling talks + to the server through the ``psql`` client). + +* An SVG rasterizer for PDF output -- ``rsvg-convert`` (from librsvg) is + preferred, with GraphicsMagick (``gm``) or ImageMagick (``convert`` / + ``magick``) as fallbacks. HTML and EPUB embed the SVG files directly and do + not need a rasterizer. + CONFIGURATION ------------- diff --git a/configure.ac b/configure.ac index 9324966ee..7371941f1 100644 --- a/configure.ac +++ b/configure.ac @@ -236,11 +236,15 @@ fi AC_PATH_PROG([XMLLINT], [xmllint], []) if test "x$XMLLINT" = "x"; then dnl AC_MSG_WARN([xmllint is not installed so documentation cannot be checked]) - AC_MSG_WARN([xmlcatalog is not installed so documentation cannot be built]) + AC_MSG_WARN([xmllint is not installed so documentation cannot be built]) CAN_BUILD_COMMENTS=no fi - +AC_PATH_PROG([PYTHON3], [python3], []) +if test "x$PYTHON3" = "x"; then + AC_MSG_WARN([python3 is not installed so documentation visual examples cannot be generated]) + AC_MSG_WARN([documentation build will fail: run 'make -C regress visual-examples' first]) +fi AC_PATH_PROG([XML2POT], [xml2pot], []) if test "x$XML2POT" = "x"; then @@ -2011,6 +2015,7 @@ AC_MSG_RESULT([ xsltproc: ${XSLTPROC}]) AC_MSG_RESULT([ docbook xsl base: ${XSLBASE}]) AC_MSG_RESULT([ dblatex: ${DBLATEX}]) AC_MSG_RESULT([ convert: ${CONVERT}]) +AC_MSG_RESULT([ python3: ${PYTHON3}]) AC_MSG_RESULT() if test "$POSTGIS_GEOS_VERSION" -lt 31200; then diff --git a/doc/development/environment/ubuntu.md b/doc/development/environment/ubuntu.md index 7ff95ccd6..4cc628eb5 100644 --- a/doc/development/environment/ubuntu.md +++ b/doc/development/environment/ubuntu.md @@ -51,7 +51,7 @@ sudo apt-get install -y --no-install-recommends \ libxml2-dev libxslt1-dev libxml2-utils \ libyaml-dev \ postgresql postgresql-client postgresql-server-dev-all \ - python3 python3-pip python3-venv python3-psycopg2 \ + python3 python3-pip python3-venv \ xsltproc docbook-xsl docbook-xsl-ns docbook-xml \ zlib1g-dev ``` @@ -59,6 +59,11 @@ sudo apt-get install -y --no-install-recommends \ This installs software so local workflow can exercise builds, sanitizers, formatters, and regression suites. +Note that the documentation example and visual-example tooling talks to the +PostgreSQL server through the `psql` client (spawned by the Python scripts), +so no Python database driver such as `psycopg2` is required for documentation +building or example tests. + ## 2. Configure PostgreSQL for local testing The CI images keep PostgreSQL entirely under `/usr/local/pgsql`. On Ubuntu we @@ -105,6 +110,8 @@ have: * PROTOBUF-C (for `ST_AsMVT`) * SFCGAL (for 3D/advanced geometry tests) * Libxml2, libxslt and docbook stylesheets (for documentation targets) +* Python 3 (required to build documentation and to run the example / + visual-example tooling; see `make -C regress visual-examples`) * Valgrind (for CUnit leak checks) Verify their presence if `./configure` fails. diff --git a/doc/development/release-process.md b/doc/development/release-process.md index 579e873e1..cbf0c5e1b 100644 --- a/doc/development/release-process.md +++ b/doc/development/release-process.md @@ -75,7 +75,11 @@ documentation -- that means having the required software: * For the docs: - xsltproc - DocBook XSL scripts - - ImageMagic + - Python 3 (required to run the example tester and generate the visual + examples that HTML and PDF embed; the SVGs come from running the staged + PostGIS build against a live PostgreSQL server) + - rsvg-convert (preferred) or GraphicsMagick/ImageMagick (to rasterize the + generated SVGs for PDF) - DbLatex (for PDF) ## Release Procedure diff --git a/doc/installation.xml b/doc/installation.xml index 69cad523a..da7ff43e2 100644 --- a/doc/installation.xml +++ b/doc/installation.xml @@ -193,16 +193,27 @@ sh autogen.sh - LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports + LibXML2. LibXML2 is currently used in some imports functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for download from https://gitlab.gnome.org/GNOME/libxml2/-/releases. + - JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON via the - function ST_GeomFromGeoJson. JSON-C is available for download from - https://github.com/json-c/json-c/releases/. + Perl is required to build PostGIS. + Perl is available for download from + https://www.perl.org/. + + + + + + The iconv library is required by the shp2pgsql loader for encoding + conversion. On GNU/Linux systems it is typically provided by libc; on + other platforms you may need a separate + libiconv + package. @@ -211,6 +222,8 @@ sh autogen.sh The GNU Multiple Precision Arithmetic Library (libgmp). Used to control precision of math operations in PostGIS Topology. GMP is available for download from https://gmplib.org/. + It is detected via pkg-config and has no fallback, so + pkg-config must be available for a default build. @@ -244,6 +257,23 @@ sh autogen.sh + + JSON-C. JSON-C is currently used to import GeoJSON via the + function ST_GeomFromGeoJson. JSON-C is available for download from + https://github.com/json-c/json-c/releases/. + It is enabled by default but optional; if it is not found configure + only warns and the build continues. Disable with + --without-json. + + + + + GNU gettext for loader and documentation translation support. It may be + disabled with --with-gettext=no. + https://www.gnu.org/software/gettext/. + + + GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader. @@ -290,6 +320,21 @@ sh autogen.sh + + + Python 3 is required to run the manual example tester that generates + the visual examples which the HTML and PDF documentation embed. + The examples are executed against a live PostgreSQL server running the + staged PostGIS build via make -C regress visual-examples; + no Python database driver is required, the tooling talks to the server + through the psql client. Python 3 is available from + + https://www.python.org/ + + . + + + DBLatex (dblatex) is required for building the ----------------------------------------------------------------------- Summary of changes: NEWS | 335 +++++++++++++++++----------------- README.postgis | 45 ++++- configure.ac | 9 +- doc/development/environment/ubuntu.md | 9 +- doc/development/release-process.md | 6 +- doc/installation.xml | 53 +++++- 6 files changed, 275 insertions(+), 182 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 1 19:39:18 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 1 Sep 2026 19:39:18 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-20-g655fc78a1 Message-ID: <20260902023919.2A4C21E5269@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 655fc78a1b31311c6088d1b14b78b51a1a6a7df5 (commit) from a767a934f3cb14b3f1078846db56772ea31b056b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 655fc78a1b31311c6088d1b14b78b51a1a6a7df5 Author: Teramoto Ikuhiro Date: Wed Sep 2 01:09:26 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 100.0% (6037 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 2895b96f2..f50cec97f 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-01 01:39+0000\n" +"PO-Revision-Date: 2026-09-02 02:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -25388,7 +25388,7 @@ msgid "" msgstr "" "&geography_transform; ???????????????????????????" "???????? (UTM???????????????/????????????" -"?)?????????????????WGS84??????????????? UTM" +"?)????????????????WGS84??????????????? UTM" "??????????????????????????????????????" "??????????????" ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Tue Sep 1 23:52:47 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 06:52:47 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple Message-ID: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple -------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Keywords: | -------------------------------+--------------------------- When adding first line it works ok {{{ SELECT ARRAY(SELECT abs(add_case05) FROM topology.TopoGeo_addLinestring('test_53_a_1_8','0102000020A2100000050000004313671D53DE34404E64FC3B10545140169A989329DE3440E00C65580F54514010526CDB36DE34406BEE28A10F545140EBE8402451DE344060A52C31105451404313671D53DE34404E64FC3B10545140',-1) add_case05) ; -- log_add_to test_53_a_1_8 }}} But If I add at set of other lines first like we do in the test script attached we get this error. {{{ psql:/tmp/test.sql:585: ERROR: XX000: SQL/MM Spatial exception - curve not simple LOCATION: pg_error, lwgeom_pg.c:363 }}} This is tested on {{{ POSTGIS="3.7.0dev 3.6.0rc2-473-g260127869" [EXTENSION] PGSQL="160" GEOS="3.14.1-CAPI-1.20.5" PROJ="9.8.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/Users/lop/Library/Application Support/proj DATABASE_PATH=/opt/homebrew/Cellar/proj/9.8.1/share/proj/proj.db" (compiled against PROJ 9.8.1) LIBXML="2.9.13" LIBJSON="0.18" LIBPROTOBUF="1.5.2" WAGYU="0.5.0 (Internal)" TOPOLOGY }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Tue Sep 1 23:53:30 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 06:53:30 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.b4309e1bca519c2be29d7ca1dceda783@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by Lars Aksel Opsahl): * Attachment "test.sql" added. test file that gives the error -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 01:00:18 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 08:00:18 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.d6f3f8ceafd815acccf13453d349ffb6@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): I can reproduce with: > POSTGIS="3.7.0dev 3.6.0rc2-398-gcf949fa33" [EXTENSION] PGSQL="180" GEOS="3.15.0dev-CAPI-1.21.0" PROJ="9.8.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/tmp/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 9.4.0) LIBXML="2.9.14" LIBJSON="0.17" LIBPROTOBUF="1.4.1" WAGYU="0.5.0 (Internal)" TOPOLOGY -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 01:24:36 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 08:24:36 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.3f515847ba1928206057ca76db432249@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "t6120-v0.sql" added. Reduced testcase: 1 edge with 6 vertices as starting condition, 1 edge with 5 vertices as offending incoming input. Both closed. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 01:55:52 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 08:55:52 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.4f0ed586c97acd121e0179837b2ddfea@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): The case at hand sees a closed line defined by 6 vertices forming a very tiny area (`ST_Area` reports `4.444311098450691e-18` units) as the starting condition. With this starting condition a line defined by 5 vertices but covering *about* the same area is passed to `TopoGeo_addLineString` and that triggers the error. All 5 vertices of the incoming line fall exactly on a vertex of the existing line, but the existing line has 1 additional vertex which is at `5.038095382105394e-15` distance from the incoming line (closes point is internal to an incoming segment). {{{ strk=# with dists as ( select d.path[1] v1i, st_distance(d.geom, g2) dist, min(st_distance(d.geom, g2)) over (partition by d.path[1]) FROM t6020_inputs, LATERAL st_dumppoints(g1) d ) select v1i, dist from dists where dist = min; v1i | dist -----+----------------------- 1 | 0 2 | 0 3 | 0 4 | 5.038095382105394e-15 5 | 0 6 | 0 (6 rows) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 03:20:47 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 10:20:47 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.810ed2bdb12bc91e8e71ec6b24931374@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "case.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 03:24:54 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 10:24:54 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.251a086feaab1d0507b260c4c27a8a07@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): Newer PostGIS version ( 3.7.0dev 3.6.0rc2-398-gcf949fa33 ) throws a different exception, which also contains location info: > ERROR: Spatial exception - geometry intersects edge 673 at POINT(20.8678219077647 69.3134366022891) The following screenshot from QGIS shows the situation. The reported intersection point is at the leftmost edge of the almost-coincident lines (black is the edge, green is the incoming, stars are start/end vertices of the two, there's no way to visually spot the vertex which is ONLY in the edge but not in the incoming). [[Image(case.png)]] -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 03:33:46 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 10:33:46 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.4f8b1f935cbaae4ec94bc1b46005f2ac@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): Possibly useful workaround, when the desired effect is data cleanup, is simplifying the existing edge: {{{ SELECT topology.ST_ChangeEdgeGeom( 't6120', edge_id, ST_Simplify(geom, 1e-14) ) FROM t6120.edge; }}} Note that a simplification tolerance of 1e-15 is not enough, even if it does remove 1 vertex from the original 6 vertices of the edge. Tolerance of 1e-14 drops two of those vertices. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 03:56:34 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 10:56:34 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.8eb9d801301d0901a47299f0250dd3a9@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "t6120-v1.sql" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 03:56:44 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 10:56:44 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.b64271dea456521f402d08142e641742@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "inputs-v1.sql" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 03:57:48 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 10:57:48 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.55600b881d0142a79ffaad7a34784498@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): Further simplification of the test (t6120-v1) sees both starting edge and incoming edge having the same amount of vertices (5) all being the same but one being off by `5.038095382105394e-15` -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 09:00:58 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 16:00:58 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.82f7d7ac01d94ea13c7ee0356952b641@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): Contraddicting comment:3 the _newer_ version `3.7.0dev 3.7.0rc1-20-g655fc78a1` actually gives the `curve not simple` error. It was the *older* `3.7.0dev 3.6.0rc2-398-gcf949fa33` giving the `geometry intersects edge` error. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 09:18:57 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 16:18:57 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.ee913b0f0c25f90c18cc7539d1c62af8@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): Another interesting workaround: pass 0 as the tolerance to `TopoGeo_addLinestring` when adding the final offending line (it also works with the originally attached testcase by swapping -1 with 0 in the last argument of the last line). Passing -1 as we are doing in the testcase doesn't mean "use 0 tolerance" but "use automatically computed tolerance" which in our case is much larger than the distance between the existing line and the incoming line: `2.49528570556641e-13`. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 09:21:17 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 16:21:17 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.2946a6c0f31d53308b276cb370335fe6@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): This automatically computed tolerance is what makes this bug not too different from the others in which we have problems when the snap tolerance used is larger than the minimum distance between existing vertices and existing edges of the topology. This was basically the reason why we added FindVertexSegmentPairsBelowDistancein 3.7.0 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 09:32:48 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 16:32:48 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.75e14be5c77f971d66c2a7756e262122@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): Yes I am testing FindVertexSegmentPairsBelowDistance also -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 09:37:27 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 16:37:27 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.d61e0beac457452e6ab0169793a21845@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+--------------------------- Changes (by strk): * keywords: => robustness -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 09:46:49 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 16:46:49 -0000 Subject: [PostGIS] #6121: Adding a node below distance of multiple edge segments snaps only one of them Message-ID: <046.cb25450f8d3e605e7ca2db0a75e25c89@osgeo.org> #6121: Adding a node below distance of multiple edge segments snaps only one of them ------------------------+--------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.5.7 Component: topology | Version: 3.5.x Keywords: robustness | ------------------------+--------------------------- Starting in PostGIS-3.5.0 we added experimental code to snap more than one existing edges to incoming nodes when those edges are below tolerance. Previously, only the closest edge was snapped, to avoid having to deal with edge merging. This code is still experimental as of current master branch (3.7.0rc1-20-g655fc78a1) and has a known bug: if the SAME edge has MULTIPLE segments within tolerance distance from the incoming node only one of them will snap, instead of both of them. This limitation results in the best case in producing a resulting topology with unwanted proximities. In the worst case the unwanted proximities result in a later (possibly within same transaction) exception being thrown. A simple test to reproduce this would be: 1. Add a V-shaped 2 segments edge, with a narrow angle 2. Add a Point far from any of the 3 vertices of the edge but within tolerance from the two segments The correct result should be to have an Y-shaped 3 edges resulting topology. At the moment you are likely to get a 2 edges topology instead. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 09:49:05 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 16:49:05 -0000 Subject: [PostGIS] #6121: Adding a node below distance of multiple edge segments snaps only one of them In-Reply-To: <046.cb25450f8d3e605e7ca2db0a75e25c89@osgeo.org> References: <046.cb25450f8d3e605e7ca2db0a75e25c89@osgeo.org> Message-ID: <061.4e35079e8166bdaedd9c116033a91717@osgeo.org> #6121: Adding a node below distance of multiple edge segments snaps only one of them -----------------------+----------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS Fund Me Component: topology | Version: 3.5.x Resolution: | Keywords: robustness -----------------------+----------------------------- Changes (by strk): * milestone: PostGIS 3.5.7 => PostGIS Fund Me -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 10:01:34 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 17:01:34 -0000 Subject: [PostGIS] #6122: Incoming linework vertices do not form nodes when below tolerance from existing edges Message-ID: <046.55d8bd7fbc1b465cc2a805afeda1b7d5@osgeo.org> #6122: Incoming linework vertices do not form nodes when below tolerance from existing edges ------------------------+--------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.8.0 Component: topology | Version: master Keywords: robustness | ------------------------+--------------------------- As mentioned in https://trac.osgeo.org/postgis/ticket/6034#comment:16 the current topology code doesn't make any effort at finding cases in which incoming vertices would end up being below tolerance from existing edge segments. Such support exists for *nodes* but nodes are computed in the floating precision model of GEOS (rather than on a fixed precision model) so there will be no node unless there is a proper intersection with an existing edge. This problem causes many robustness issues like #6034, #5862, #5786 and more Possible solutions include: 1. Snapping existing edges to incoming vertices (WIP: https://gitea.osgeo.org/postgis/postgis/pulls/280) 2. Compute noding on a fixed precision model (WIP: https://gitea.osgeo.org/postgis/postgis/pulls/243) -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 10:03:19 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 17:03:19 -0000 Subject: [PostGIS] #6122: Incoming linework vertices do not form nodes when below tolerance from existing edges In-Reply-To: <046.55d8bd7fbc1b465cc2a805afeda1b7d5@osgeo.org> References: <046.55d8bd7fbc1b465cc2a805afeda1b7d5@osgeo.org> Message-ID: <061.6539592d4581d3dda93564c483fe19ad@osgeo.org> #6122: Incoming linework vertices do not form nodes when below tolerance from existing edges -----------------------+----------------------------- Reporter: strk | Owner: strk Type: defect | Status: new Priority: high | Milestone: PostGIS Fund Me Component: topology | Version: master Resolution: | Keywords: robustness -----------------------+----------------------------- Changes (by strk): * milestone: PostGIS 3.8.0 => PostGIS Fund Me * priority: medium => high -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Wed Sep 2 10:06:08 2026 From: git at osgeo.org (git at osgeo.org) Date: Wed, 2 Sep 2026 10:06:08 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-21-g2b099fa96 Message-ID: <20260902170609.267261DB2B0@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 2b099fa96792108d87dd419fa98eb5a92eb89979 (commit) from 655fc78a1b31311c6088d1b14b78b51a1a6a7df5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 2b099fa96792108d87dd419fa98eb5a92eb89979 Author: Sandro Santilli Date: Wed Sep 2 19:05:26 2026 +0200 Fix cp (GNU coreutils) 9.4 WARNING The warning was: cp: warning: behavior of -n is non-portable and may change in future; use --update=none instead diff --git a/fuzzers/build_google_oss_fuzzers.sh b/fuzzers/build_google_oss_fuzzers.sh index b95c733e6..23263049a 100755 --- a/fuzzers/build_google_oss_fuzzers.sh +++ b/fuzzers/build_google_oss_fuzzers.sh @@ -113,7 +113,7 @@ package_runtime_libs() ;; esac - cp -n "$lib" "$OUT/lib/" || true + cp --update=none "$lib" "$OUT/lib/" || true done < <(ldd "$fuzzer" | awk '/=> \// {print $3}') done ----------------------------------------------------------------------- Summary of changes: fuzzers/build_google_oss_fuzzers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- PostGIS From trac at osgeo.org Wed Sep 2 10:10:31 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 17:10:31 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.1835511a84e40b90ae80cd1e167cb02f@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+--------------------------- Comment (by strk): I think the "Curve Not Simple" exception is due to the fact that the noded line is computed so to have end nodes within tolerance from existing nodes and thus result in the edge component being collapsed to a self- intersecting curve. A MakeValid there could fix this case. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 10:13:57 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 17:13:57 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.7dd49c465587363561de0f1e518c2c3e@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+--------------------------- Comment (by strk): Interesting: there's ALREADY a call to `lwgeom_make_valid`, but I'm afraid that call won't resolve non-simple curves (lines are always valid). We might need an `lwgeom_make_simple` instead -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 10:27:15 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 17:27:15 -0000 Subject: [PostGIS] #6123: ST_MakeSimple Message-ID: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> #6123: ST_MakeSimple -------------------------+--------------------------- Reporter: strk | Owner: pramsey Type: enhancement | Status: new Priority: medium | Milestone: PostGIS 3.8.0 Component: postgis | Version: master Keywords: | -------------------------+--------------------------- The ST_MakeValid function internally would be able to turn a collapsed linestring into a simple one, but `ST_MakeValid` never does it unless the linestring is a ring of a polygon (because by definition a linestring is never invalid). An ST_MakeSimple function could deal with the non-simple linestring case in a clear way, that is using the same promise of MakeValid (not loosing vertices, adding intersection points, splitting when needed, dropping collapses) but for lines. Such a function (at liblwgeom level, not necessarely at SQL level) would be useful for topology. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 10:31:12 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 17:31:12 -0000 Subject: [PostGIS] #6123: ST_MakeSimple In-Reply-To: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> References: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> Message-ID: <061.64e568bb2c8a35407eb6450a9d2c90a4@osgeo.org> #6123: ST_MakeSimple --------------------------+--------------------------- Reporter: strk | Owner: pramsey Type: enhancement | Status: new Priority: medium | Milestone: PostGIS 3.8.0 Component: postgis | Version: master Resolution: | Keywords: --------------------------+--------------------------- Comment (by strk): Prior art (found from [https://github.com/locationtech/jts/issues/652 JTS ticket about MakeValid]) is in [https://github.com/Esri/geometry-api- java/blob/a1af6612f4de7fc1baee1c331c335f154a4a96c9/src/main/java/com/esri/core/geometry/ogc/OGCGeometry.java#L234 ESRI Java Geometry API] -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 10:33:25 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 17:33:25 -0000 Subject: [PostGIS] #6123: ST_MakeSimple In-Reply-To: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> References: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> Message-ID: <061.a60064f91df854a90f9cf6b966249293@osgeo.org> #6123: ST_MakeSimple --------------------------+--------------------------- Reporter: strk | Owner: pramsey Type: enhancement | Status: new Priority: medium | Milestone: PostGIS 3.8.0 Component: postgis | Version: master Resolution: | Keywords: --------------------------+--------------------------- Comment (by strk): [https://gitea.osgeo.org/postgis/postgis/src/commit/2b099fa96792108d87dd419fa98eb5a92eb89979/liblwgeom/topo/lwgeom_topo.c#L7250 here] is the topology code relying on `lwgeom_make_valid` to handle line collapses. Evidently at some point that function did handle line collapses (suggesting there's been a regression in that function, which would be worth its own ticket). -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Wed Sep 2 10:42:22 2026 From: git at osgeo.org (git at osgeo.org) Date: Wed, 2 Sep 2026 10:42:22 -0700 (PDT) Subject: [SCM] postgis.net branch website updated. clarity-final-260-g7abd4af Message-ID: <20260902174225.6B41A1DC589@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "postgis.net". The branch, website has been updated via 7abd4af2bb5b2f3044a504c32f7061bcff01b340 (commit) from 8b4307cd842d9b42e21727ddd16657296cd548ff (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7abd4af2bb5b2f3044a504c32f7061bcff01b340 Author: Regina Obe Date: Wed Sep 2 13:41:39 2026 -0400 Add FOSS4G UK 2026 Cleanup FOSS4G NA 2022 diff --git a/content/community/events/2026-foss4g-na/index.md b/content/community/events/2026-foss4g-na/index.md index 9b5b245..ed06a3a 100644 --- a/content/community/events/2026-foss4g-na/index.md +++ b/content/community/events/2026-foss4g-na/index.md @@ -23,8 +23,8 @@ with FOSS4G talks involving OSGeo projects as well as other Free and Open Source ## Submissions -Talk submission is open til May 15th 2025. -https://talks.osgeo.org/foss4g-na-2025/ +Closed except for Lighting talks and Posters +https://talks.osgeo.org/foss4g-na-2026/ ## Sponsor Sponsorship opportunities open for registration. We have the following [Sponsorship options](https://www.foss4gna.org/cfsponsors-2026) diff --git a/content/community/events/2026-foss4g-uk/foss4g_north_america_logo.jpg b/content/community/events/2026-foss4g-uk/foss4g_north_america_logo.jpg new file mode 100644 index 0000000..094763d Binary files /dev/null and b/content/community/events/2026-foss4g-uk/foss4g_north_america_logo.jpg differ diff --git a/content/community/events/2026-foss4g-uk/index.md b/content/community/events/2026-foss4g-uk/index.md new file mode 100644 index 0000000..5201b07 --- /dev/null +++ b/content/community/events/2026-foss4g-uk/index.md @@ -0,0 +1,30 @@ +--- +title: "FOSS4G:UK 2026" +date: "2026-09-01" +eventDates: "2026-10-12 to 2026-10-13" +expiryDate: "2026-11-10" +tags: ["FOSS4G", "FOSS4GUK"] +eventLink: "https://uk.osgeo.org/foss4guk2026/" +location: "Leeds LS10 1JR, UK" +image: "logo.svg" +geekdocHidden: true +--- + +Join the growing open source geospatial community, including developers, practitioners, researchers, consultants, public sector teams, students, and community groups for a two day jam-packed conference . + + + +## What to Expect + +The aim of the conference is twofold: the exchange of information and experiences between users of geographic data and free and open source software for processing geographic information, and the possibility for new or potential users to discover the functionality of these systems and the availability of data, and to meet developers and experienced users. + +There will be a great lineup of talks on both days consisting of using open source geospatial tools and development of such tools. + +## Submissions + +Talk submission is CLOSED. + +## Sponsor +Sponsorship opportunities open for registration. We have the following [Sponsorship options](https://uk.osgeo.org/foss4guk2026/sponsor/) +## Register +You can register to attend at: https://uk.osgeo.org/foss4guk2026/registration/ diff --git a/content/community/events/2026-foss4g-uk/logo.svg b/content/community/events/2026-foss4g-uk/logo.svg new file mode 100644 index 0000000..092619e --- /dev/null +++ b/content/community/events/2026-foss4g-uk/logo.svg @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ----------------------------------------------------------------------- Summary of changes: content/community/events/2026-foss4g-na/index.md | 4 +- .../foss4g_north_america_logo.jpg | Bin content/community/events/2026-foss4g-uk/index.md | 30 ++++ content/community/events/2026-foss4g-uk/logo.svg | 189 +++++++++++++++++++++ 4 files changed, 221 insertions(+), 2 deletions(-) copy content/community/events/{2026-foss4g-na => 2026-foss4g-uk}/foss4g_north_america_logo.jpg (100%) create mode 100644 content/community/events/2026-foss4g-uk/index.md create mode 100644 content/community/events/2026-foss4g-uk/logo.svg hooks/post-receive -- postgis.net From trac at osgeo.org Wed Sep 2 10:50:31 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 17:50:31 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.e3dc7751612dcfde19a12d80a7272dc7@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+--------------------------- Comment (by strk): it turns out it was a regression in `lwgeom_make_valid` (see #6123) - a working fix is in https://gitea.osgeo.org/postgis/postgis/pulls/768 -- it needs adding a testcase for it. Tests welcome -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 2 13:57:03 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 02 Sep 2026 20:57:03 -0000 Subject: [PostGIS] #6124: 3.7.0rc1 compile failure on NetBSD Message-ID: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> #6124: 3.7.0rc1 compile failure on NetBSD ---------------------------+--------------------------- Reporter: robe | Owner: robe Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.7.0 Component: documentation | Version: master Keywords: | ---------------------------+--------------------------- https://lists.osgeo.org/pipermail/postgis-users/2026-August/047074.html {{{ gmake[3]: Leaving directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/extensions/postgis_topology' gmake[2]: Leaving directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/extensions' PostGIS was built successfully. Ready to install. gmake[1]: Leaving directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1' Using GNU make found at /tmp/work/databases/postgresql- postgis2/work/.tools/bin/gmake gmake[1]: Entering directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1' /usr/pkg/bin/perl ./utils/repo_revision.pl fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). Can't determine revision from git log Not updating existing rev file at eb40b0e /tmp/work/databases/postgresql-postgis2/work/.tools/bin/gmake -C doc html gmake[2]: Entering directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc' /usr/pkg/bin/perl -pe "s!\@\@XSLBASE\@\@!/usr/pkg/share/xsl/docbook!g; s!\@\@ABS_SRCDIR\@\@!/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc!g;" /tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc/xsl/postgis-html.xsl.i\ n > postgis-html.xsl mkdir -p /tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc/html /usr/pkg/bin/python3 /tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/utils/docs/docbook_qa.py ref-index postgis- out.xml /tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc/html/postgis-ref-index.json wrote /tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc/html/postgis-ref-index.json and /tmp/work/databases/postgresql-postgis2/work/postgis-3.7.0rc1/doc/html /postgis-ref-index.js; commands=1, functions=630, operator pages=37, SQL key\ words=63 /tmp/work/databases/postgresql-postgis2/work/.tools/bin/gmake -C /tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc/html/images visual-examples-check gmake[3]: Entering directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc/html/images' Visual examples are missing. Run 'make -C regress visual-examples' first. gmake[3]: *** [Makefile:52: visual-examples-check] Error 1 gmake[3]: Leaving directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc/html/images' gmake[2]: *** [Makefile:626: visual-examples] Error 2 gmake[2]: Leaving directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1/doc' gmake[1]: *** [GNUmakefile:251: docs] Error 2 gmake[1]: Leaving directory '/tmp/work/databases/postgresql- postgis2/work/postgis-3.7.0rc1' gmake: *** [Makefile:7: docs] Error 2 *** Error code 2 }}} }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Thu Sep 3 10:57:45 2026 From: git at osgeo.org (git at osgeo.org) Date: Thu, 3 Sep 2026 10:57:45 -0700 (PDT) Subject: [SCM] PostGIS branch stable-3.6 updated. 3.6.4-142-geffa73b6f Message-ID: <20260903175745.8734E1CF25E@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, stable-3.6 has been updated via effa73b6fe547c182f66b9f143029a20db4acaf0 (commit) from 6a8b5a8ce8939ef68878f4f9f98e846fd99081de (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit effa73b6fe547c182f66b9f143029a20db4acaf0 Author: Sandro Santilli Date: Wed Sep 2 19:46:42 2026 +0200 Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in 3.6 branch (3.6.5dev) diff --git a/NEWS b/NEWS index 79dee3010..727d61763 100644 --- a/NEWS +++ b/NEWS @@ -1,13 +1,15 @@ -PostGIS 3.6.5 +PostGIS 3.6.5dev 2026/xx/xx * Fixes * - - GT-675, Preserve TRIANGLE children while normalizing malformed TINs - (Darafei Praliaskouski) - - #6038, Avoid stale geometry_columns relation lookups after relations are - dropped or SELECT privilege is revoked (Darafei Praliaskouski) - - Stop the extension upgrade script running ANALYZE inside its transaction, +- #6120, Improve topology robustness by restoring edge collapse handling + during building (Sandro Santilli) +- GT-675, Preserve TRIANGLE children while normalizing malformed TINs + (Darafei Praliaskouski) +- #6038, Avoid stale geometry_columns relation lookups after relations are + dropped or SELECT privilege is revoked (Darafei Praliaskouski) +- Stop the extension upgrade script running ANALYZE inside its transaction, where it can deadlock with autovacuum (Darafei Praliaskouski) - OSSFuzz 5877056525893632, reject truncated encoded polyline input (Darafei Praliaskouski) diff --git a/liblwgeom/topo/lwgeom_topo.c b/liblwgeom/topo/lwgeom_topo.c index 9050e100d..893b3cce3 100644 --- a/liblwgeom/topo/lwgeom_topo.c +++ b/liblwgeom/topo/lwgeom_topo.c @@ -6973,12 +6973,12 @@ _lwt_AddLineEdge( LWT_TOPOLOGY* topo, LWLINE* edge, double tol, if ( nn ) _lwt_release_nodes(node, nn); - LWDEBUGG(2, lwline_as_lwgeom(edge), "Snapped after drifted endpoints snap"); + LWDEBUGG(1, lwline_as_lwgeom(edge), "Snapped after drifted endpoints snap"); - /* make valid, after snap (to handle collapses) */ - tmp = lwgeom_make_valid(lwline_as_lwgeom(edge)); + /* node after snap (to handle collapses) */ + tmp = lwgeom_node(lwline_as_lwgeom(edge)); - LWDEBUGG(2, tmp, "Made-valid after snap to drifted endpoints"); + LWDEBUGG(1, tmp, "Noded after snap to drifted endpoints"); col = lwgeom_as_lwcollection(tmp); if ( col ) diff --git a/topology/test/regress/topogeo_addlinestring.sql b/topology/test/regress/topogeo_addlinestring.sql index 5573150ab..cb86ee076 100644 --- a/topology/test/regress/topogeo_addlinestring.sql +++ b/topology/test/regress/topogeo_addlinestring.sql @@ -556,3 +556,18 @@ SELECT NULL FROM topology.TopoGeo_addLinestring('t5782', ); SELECT '#5782', 'valid_after', * FROM topology.ValidateTopology('t5782'); ROLLBACK; + +-- See https://trac.osgeo.org/postgis/ticket/6120 +BEGIN; +SELECT NULL FROM topology.CreateTopology( 't6120' ); +-- Start condition: single closed edge forming very tiny area +-- TODO: create the starting condition with COPY instead? +SELECT 't6120.start', topology.TopoGeo_addLinestring('t6120', + '01020000000500000010526CDB36DE34406BEE28A10F5451404313671D53DE34404E64FC3B1054514010526CDB36DE34406CEE28A10F545140169A989329DE3440E00C65580F54514010526CDB36DE34406BEE28A10F545140' +,-1); + +-- Incoming: line very similar to the existing one, with just one vertex off by 5.038095382105394e-15 +SELECT 't6120.works', count(*) > 0 FROM topology.TopoGeo_addLinestring('t6120', + '0102000000050000004313671D53DE34404E64FC3B10545140169A989329DE3440E00C65580F54514010526CDB36DE34406BEE28A10F545140EBE8402451DE344060A52C31105451404313671D53DE34404E64FC3B10545140' +,-1); +ROLLBACK; diff --git a/topology/test/regress/topogeo_addlinestring_expected b/topology/test/regress/topogeo_addlinestring_expected index 2a2099d6a..43e770a39 100644 --- a/topology/test/regress/topogeo_addlinestring_expected +++ b/topology/test/regress/topogeo_addlinestring_expected @@ -224,3 +224,5 @@ b5234.0|1 b5234.1|1 t5568|invalidities at start| t5568|invalidities at end| +t6120.start|1 +t6120.works|t ----------------------------------------------------------------------- Summary of changes: NEWS | 14 ++++++++------ liblwgeom/topo/lwgeom_topo.c | 8 ++++---- topology/test/regress/topogeo_addlinestring.sql | 15 +++++++++++++++ topology/test/regress/topogeo_addlinestring_expected | 2 ++ 4 files changed, 29 insertions(+), 10 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Thu Sep 3 10:57:47 2026 From: trac at osgeo.org (PostGIS) Date: Thu, 03 Sep 2026 17:57:47 -0000 Subject: [PostGIS] #6123: ST_MakeSimple In-Reply-To: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> References: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> Message-ID: <061.7f0f2727000b1a8fed124efc4d79e565@osgeo.org> #6123: ST_MakeSimple --------------------------+--------------------------- Reporter: strk | Owner: pramsey Type: enhancement | Status: new Priority: medium | Milestone: PostGIS 3.8.0 Component: postgis | Version: master Resolution: | Keywords: --------------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"effa73b6fe547c182f66b9f143029a20db4acaf0/git" effa73b/git]: {{{#!CommitTicketReference repository="git" revision="effa73b6fe547c182f66b9f143029a20db4acaf0" Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in 3.6 branch (3.6.5dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Thu Sep 3 10:57:47 2026 From: trac at osgeo.org (PostGIS) Date: Thu, 03 Sep 2026 17:57:47 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.aa50f27240da413cd245c1479ae1a43d@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"effa73b6fe547c182f66b9f143029a20db4acaf0/git" effa73b/git]: {{{#!CommitTicketReference repository="git" revision="effa73b6fe547c182f66b9f143029a20db4acaf0" Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in 3.6 branch (3.6.5dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Thu Sep 3 11:02:40 2026 From: git at osgeo.org (git at osgeo.org) Date: Thu, 3 Sep 2026 11:02:40 -0700 (PDT) Subject: [SCM] PostGIS branch stable-3.5 updated. 3.5.7-141-gf0cdc8549 Message-ID: <20260903180240.808F71CFD41@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, stable-3.5 has been updated via f0cdc854901ea6f02ec81dcb751f1355e3739af7 (commit) from da7602bad94e1ba6de48571f16fed93aef32c3ce (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f0cdc854901ea6f02ec81dcb751f1355e3739af7 Author: Sandro Santilli Date: Wed Sep 2 19:46:42 2026 +0200 Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in 3.5 branch (3.5.8dev) diff --git a/NEWS b/NEWS index e68fa1907..8cd60959a 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,10 @@ -PostGIS 3.5.8 +PostGIS 3.5.8dev 2026/xx/xx * Bug Fixes * + - #6120, Improve topology robustness by restoring edge collapse handling + during building (Sandro Santilli) - GT-675, Preserve TRIANGLE children while normalizing malformed TINs (Darafei Praliaskouski) - #6038, Avoid stale geometry_columns relation lookups after relations are @@ -73,7 +75,7 @@ PostGIS 3.5.7 - #5916, ST_Split hang with very large ordinates (Paul Ramsey) - #5989, CurvePolygon distance corner case (Paul Ramsey) - #5357, ST_LineFromEncodedPolyline dropping close points (Paul Ramsey) - - OSSFuzz 525554772, avoid signed integer overflow (Even Rouault) + - OSSFuzz 525554772, avoid signed integer overflow (Even Rouault) - OSSFuzz 525548201, avoid overly nested inputs (Darafei Praliaskouski) - Avoid Inf loop in Geohash calculation (Paul Ramsey) - [address_standardizer] Avoid unsafe table-name handling and out-of-bounds diff --git a/liblwgeom/topo/lwgeom_topo.c b/liblwgeom/topo/lwgeom_topo.c index ba358fee7..ac7937572 100644 --- a/liblwgeom/topo/lwgeom_topo.c +++ b/liblwgeom/topo/lwgeom_topo.c @@ -6991,12 +6991,12 @@ _lwt_AddLineEdge( LWT_TOPOLOGY* topo, LWLINE* edge, double tol, if ( nn ) _lwt_release_nodes(node, nn); - LWDEBUGG(2, lwline_as_lwgeom(edge), "Snapped after drifted endpoints snap"); + LWDEBUGG(1, lwline_as_lwgeom(edge), "Snapped after drifted endpoints snap"); - /* make valid, after snap (to handle collapses) */ - tmp = lwgeom_make_valid(lwline_as_lwgeom(edge)); + /* node after snap (to handle collapses) */ + tmp = lwgeom_node(lwline_as_lwgeom(edge)); - LWDEBUGG(2, tmp, "Made-valid after snap to drifted endpoints"); + LWDEBUGG(1, tmp, "Noded after snap to drifted endpoints"); col = lwgeom_as_lwcollection(tmp); if ( col ) diff --git a/topology/test/regress/topogeo_addlinestring.sql b/topology/test/regress/topogeo_addlinestring.sql index 5573150ab..cb86ee076 100644 --- a/topology/test/regress/topogeo_addlinestring.sql +++ b/topology/test/regress/topogeo_addlinestring.sql @@ -556,3 +556,18 @@ SELECT NULL FROM topology.TopoGeo_addLinestring('t5782', ); SELECT '#5782', 'valid_after', * FROM topology.ValidateTopology('t5782'); ROLLBACK; + +-- See https://trac.osgeo.org/postgis/ticket/6120 +BEGIN; +SELECT NULL FROM topology.CreateTopology( 't6120' ); +-- Start condition: single closed edge forming very tiny area +-- TODO: create the starting condition with COPY instead? +SELECT 't6120.start', topology.TopoGeo_addLinestring('t6120', + '01020000000500000010526CDB36DE34406BEE28A10F5451404313671D53DE34404E64FC3B1054514010526CDB36DE34406CEE28A10F545140169A989329DE3440E00C65580F54514010526CDB36DE34406BEE28A10F545140' +,-1); + +-- Incoming: line very similar to the existing one, with just one vertex off by 5.038095382105394e-15 +SELECT 't6120.works', count(*) > 0 FROM topology.TopoGeo_addLinestring('t6120', + '0102000000050000004313671D53DE34404E64FC3B10545140169A989329DE3440E00C65580F54514010526CDB36DE34406BEE28A10F545140EBE8402451DE344060A52C31105451404313671D53DE34404E64FC3B10545140' +,-1); +ROLLBACK; diff --git a/topology/test/regress/topogeo_addlinestring_expected b/topology/test/regress/topogeo_addlinestring_expected index 2a2099d6a..43e770a39 100644 --- a/topology/test/regress/topogeo_addlinestring_expected +++ b/topology/test/regress/topogeo_addlinestring_expected @@ -224,3 +224,5 @@ b5234.0|1 b5234.1|1 t5568|invalidities at start| t5568|invalidities at end| +t6120.start|1 +t6120.works|t ----------------------------------------------------------------------- Summary of changes: NEWS | 6 ++++-- liblwgeom/topo/lwgeom_topo.c | 8 ++++---- topology/test/regress/topogeo_addlinestring.sql | 15 +++++++++++++++ topology/test/regress/topogeo_addlinestring_expected | 2 ++ 4 files changed, 25 insertions(+), 6 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Thu Sep 3 11:02:42 2026 From: trac at osgeo.org (PostGIS) Date: Thu, 03 Sep 2026 18:02:42 -0000 Subject: [PostGIS] #6123: ST_MakeSimple In-Reply-To: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> References: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> Message-ID: <061.c58f40380cd1072cde35a88f37031919@osgeo.org> #6123: ST_MakeSimple --------------------------+--------------------------- Reporter: strk | Owner: pramsey Type: enhancement | Status: new Priority: medium | Milestone: PostGIS 3.8.0 Component: postgis | Version: master Resolution: | Keywords: --------------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"f0cdc854901ea6f02ec81dcb751f1355e3739af7/git" f0cdc854/git]: {{{#!CommitTicketReference repository="git" revision="f0cdc854901ea6f02ec81dcb751f1355e3739af7" Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in 3.5 branch (3.5.8dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Thu Sep 3 11:02:42 2026 From: trac at osgeo.org (PostGIS) Date: Thu, 03 Sep 2026 18:02:42 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.48c37c39a824b2ed0afde017a45b723f@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"f0cdc854901ea6f02ec81dcb751f1355e3739af7/git" f0cdc854/git]: {{{#!CommitTicketReference repository="git" revision="f0cdc854901ea6f02ec81dcb751f1355e3739af7" Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in 3.5 branch (3.5.8dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Thu Sep 3 11:05:24 2026 From: git at osgeo.org (git at osgeo.org) Date: Thu, 3 Sep 2026 11:05:24 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-22-g5c6ed8fb7 Message-ID: <20260903180524.61B101D03CA@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 5c6ed8fb748983124d43acd7edde3d36c38abfa0 (commit) from 2b099fa96792108d87dd419fa98eb5a92eb89979 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5c6ed8fb748983124d43acd7edde3d36c38abfa0 Author: Sandro Santilli Date: Wed Sep 2 19:46:42 2026 +0200 Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in master branch (3.7.0dev) diff --git a/liblwgeom/topo/lwgeom_topo.c b/liblwgeom/topo/lwgeom_topo.c index 11fed9091..5f87eb282 100644 --- a/liblwgeom/topo/lwgeom_topo.c +++ b/liblwgeom/topo/lwgeom_topo.c @@ -7245,12 +7245,12 @@ _lwt_AddLineEdge(LWT_TOPOLOGY *topo, if ( nn ) _lwt_release_nodes(node, nn); - LWDEBUGG(2, lwline_as_lwgeom(edge), "Snapped after drifted endpoints snap"); + LWDEBUGG(1, lwline_as_lwgeom(edge), "Snapped after drifted endpoints snap"); - /* make valid, after snap (to handle collapses) */ - tmp = lwgeom_make_valid(lwline_as_lwgeom(edge)); + /* node after snap (to handle collapses) */ + tmp = lwgeom_node(lwline_as_lwgeom(edge)); - LWDEBUGG(2, tmp, "Made-valid after snap to drifted endpoints"); + LWDEBUGG(1, tmp, "Noded after snap to drifted endpoints"); col = lwgeom_as_lwcollection(tmp); if ( col ) diff --git a/topology/test/regress/topogeo_addlinestring.sql b/topology/test/regress/topogeo_addlinestring.sql index 1f67b7198..caef2a21f 100644 --- a/topology/test/regress/topogeo_addlinestring.sql +++ b/topology/test/regress/topogeo_addlinestring.sql @@ -686,3 +686,20 @@ SELECT 't6064.2', count(*) > 0 FROM topology.TopoGeo_addLinestring('t6064', )'); SELECT 't6064.check.final', * FROM topology.ValidateTopology('t6064'); SELECT NULL FROM topology.DropTopology ('t6064'); + + + +-- See https://trac.osgeo.org/postgis/ticket/6120 +BEGIN; +SELECT NULL FROM topology.CreateTopology( 't6120' ); +-- Start condition: single closed edge forming very tiny area +-- TODO: create the starting condition with COPY instead? +SELECT 't6120.start', topology.TopoGeo_addLinestring('t6120', + '01020000000500000010526CDB36DE34406BEE28A10F5451404313671D53DE34404E64FC3B1054514010526CDB36DE34406CEE28A10F545140169A989329DE3440E00C65580F54514010526CDB36DE34406BEE28A10F545140' +,-1); + +-- Incoming: line very similar to the existing one, with just one vertex off by 5.038095382105394e-15 +SELECT 't6120.works', count(*) > 0 FROM topology.TopoGeo_addLinestring('t6120', + '0102000000050000004313671D53DE34404E64FC3B10545140169A989329DE3440E00C65580F54514010526CDB36DE34406BEE28A10F545140EBE8402451DE344060A52C31105451404313671D53DE34404E64FC3B10545140' +,-1); +ROLLBACK; diff --git a/topology/test/regress/topogeo_addlinestring_expected b/topology/test/regress/topogeo_addlinestring_expected index 957ed5f3c..aebefa2c6 100644 --- a/topology/test/regress/topogeo_addlinestring_expected +++ b/topology/test/regress/topogeo_addlinestring_expected @@ -243,3 +243,5 @@ t6023.2|errors| t6062.edges|t t6064.1|t t6064.2|t +t6120.start|1 +t6120.works|t ----------------------------------------------------------------------- Summary of changes: liblwgeom/topo/lwgeom_topo.c | 8 ++++---- topology/test/regress/topogeo_addlinestring.sql | 17 +++++++++++++++++ topology/test/regress/topogeo_addlinestring_expected | 2 ++ 3 files changed, 23 insertions(+), 4 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Thu Sep 3 11:05:26 2026 From: trac at osgeo.org (PostGIS) Date: Thu, 03 Sep 2026 18:05:26 -0000 Subject: [PostGIS] #6123: ST_MakeSimple In-Reply-To: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> References: <046.876634207f65ccab81d5d62ce75fddf1@osgeo.org> Message-ID: <061.4f8fed0b5268ca5c46a72b770bc4931b@osgeo.org> #6123: ST_MakeSimple --------------------------+--------------------------- Reporter: strk | Owner: pramsey Type: enhancement | Status: new Priority: medium | Milestone: PostGIS 3.8.0 Component: postgis | Version: master Resolution: | Keywords: --------------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"5c6ed8fb748983124d43acd7edde3d36c38abfa0/git" 5c6ed8f/git]: {{{#!CommitTicketReference repository="git" revision="5c6ed8fb748983124d43acd7edde3d36c38abfa0" Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in master branch (3.7.0dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Thu Sep 3 11:05:26 2026 From: trac at osgeo.org (PostGIS) Date: Thu, 03 Sep 2026 18:05:26 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.730b9a10f0c32c53ed4d476ae960e8b9@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+--------------------------- Comment (by Sandro Santilli ): In [changeset:"5c6ed8fb748983124d43acd7edde3d36c38abfa0/git" 5c6ed8f/git]: {{{#!CommitTicketReference repository="git" revision="5c6ed8fb748983124d43acd7edde3d36c38abfa0" Restore edge collapse handling in topology population function The topology code used lwgeom_make_valid to handle line collapses, but that function apparently changed semantic (see #6123 comment 2). Includes regress test References #6120 in master branch (3.7.0dev) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Thu Sep 3 11:06:58 2026 From: trac at osgeo.org (PostGIS) Date: Thu, 03 Sep 2026 18:06:58 -0000 Subject: [PostGIS] #6120: XX000: SQL/MM Spatial exception - curve not simple In-Reply-To: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> References: <050.aa0d55069b99665251dbf32fb11bf4e2@osgeo.org> Message-ID: <065.ecdab7d9ddfb5857ac95975c653cb932@osgeo.org> #6120: XX000: SQL/MM Spatial exception - curve not simple --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: robustness --------------------------------+--------------------------- Comment (by strk): I can't get success running tests in 3.4 and 3.3, will try again next week. It's also still to be found out WHEN the behavior of lwgeom_make_valid changed. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Thu Sep 3 23:22:22 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 04 Sep 2026 06:22:22 -0000 Subject: [PostGIS] #6034: Missing node when adding overlapping line In-Reply-To: <050.00fe4cf3809caf26d3d25a602c774226@osgeo.org> References: <050.00fe4cf3809caf26d3d25a602c774226@osgeo.org> Message-ID: <065.763a4b993a13b2ec89b1e4a76f8e2b3d@osgeo.org> #6034: Missing node when adding overlapping line --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: closed Priority: medium | Milestone: PostGIS 3.7.0 Component: topology | Version: 3.6.x Resolution: duplicate | Keywords: --------------------------------+--------------------------- Changes (by strk): * resolution: => duplicate * status: new => closed Comment: I'm closing this as a specific case of the more general #6122 issue -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Sep 4 00:16:59 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 04 Sep 2026 07:16:59 -0000 Subject: [PostGIS] #6125: Document hugo version requirements for website building Message-ID: <046.4a19722d60c3a14565cd5690ac1a8fdc@osgeo.org> #6125: Document hugo version requirements for website building ---------------------+-------------------------------------- Reporter: strk | Owner: robe Type: defect | Status: new Priority: medium | Milestone: Website Management, Bots Component: website | Version: Keywords: | ---------------------+-------------------------------------- Hugo v0.123.7 is unable to build the website: {{{ $ hugo version hugo v0.123.7+extended linux/amd64 BuildDate=2025-07-18T03:41:49Z VendorInfo=ubuntu:0.123.7-1ubuntu0.3 $ hugo serve hugo serve Watching for changes in /usr/local/src/postgis/postgis.net/{archetypes,content,data,layouts,static,themes} Watching for config changes in /usr/local/src/postgis/postgis.net/config.toml Start building sites ? hugo v0.123.7+extended linux/amd64 BuildDate=2025-07-18T03:41:49Z VendorInfo=ubuntu:0.123.7-1ubuntu0.3 ERROR render of "home" failed: "/usr/local/src/postgis/postgis.net/themes /hugo-geekdoc/layouts/_default/baseof.html:20:7": execute of template failed: template: home.html:20:7: executing "home.html" at : error calling partial: "/usr/local/src/postgis/postgis.net/layouts/partials/head/others.html:2:31": execute of template failed: template: partials/head/others.html:2:31: executing "partials/head/others.html" at : can't evaluate field Data in type interface {} ERROR render of "section" failed: "/usr/local/src/postgis/postgis.net/themes/hugo- geekdoc/layouts/_default/baseof.html:20:7": execute of template failed: template: _default/toplevel.html:20:7: executing "_default/toplevel.html" at : error calling partial: "/usr/local/src/postgis/postgis.net/layouts/partials/head/others.html:2:31": execute of template failed: template: partials/head/others.html:2:31: executing "partials/head/others.html" at : can't evaluate field Data in type interface {} ERROR render of "page" failed: "/usr/local/src/postgis/postgis.net/themes /hugo-geekdoc/layouts/_default/baseof.html:20:7": execute of template failed: template: _default/single.html:20:7: executing "_default/single.html" at : error calling partial: "/usr/local/src/postgis/postgis.net/layouts/partials/head/others.html:2:31": execute of template failed: template: partials/head/others.html:2:31: executing "partials/head/others.html" at : can't evaluate field Data in type interface {} Built in 584 ms Error: error building site: render: failed to render pages: render of "404" failed: "/usr/local/src/postgis/postgis.net/themes/hugo- geekdoc/layouts/404.html:8:7": execute of template failed: template: 404.html:8:7: executing "404.html" at : error calling partial: "/usr/local/src/postgis/postgis.net/layouts/partials/head/others.html:2:31": execute of template failed: template: partials/head/others.html:2:31: executing "partials/head/others.html" at : can't evaluate field Data in type interface {} }}} It would be useful to document the minimum (or maximum?) required Hugo version to reduce the frustration. Maybe even have the Makefile check for the deps. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Sep 4 00:19:40 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 04 Sep 2026 07:19:40 -0000 Subject: [PostGIS] #6126: Document requirement for ci status update Message-ID: <046.97463d96fe4539a480dac9955754bd7b@osgeo.org> #6126: Document requirement for ci status update -------------------------+-------------------------------------- Reporter: strk | Owner: robe Type: enhancement | Status: new Priority: medium | Milestone: Website Management, Bots Component: website | Version: Keywords: | -------------------------+-------------------------------------- By reading the content/ci/ci-status.js I've understood a ci/status.json is required at deploy time but there's no mention of this in the README (under "Production publishing"). I think it's due. NOTE: there's a `ci` Makefile target that seems to be aimed at producing and deploying that file -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Sep 4 00:19:53 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 04 Sep 2026 07:19:53 -0000 Subject: [PostGIS] #6125: Document hugo version requirements for website building In-Reply-To: <046.4a19722d60c3a14565cd5690ac1a8fdc@osgeo.org> References: <046.4a19722d60c3a14565cd5690ac1a8fdc@osgeo.org> Message-ID: <061.a471ee52e86e743920a85e13d1472d96@osgeo.org> #6125: Document hugo version requirements for website building --------------------------+-------------------------------------- Reporter: strk | Owner: robe Type: enhancement | Status: new Priority: medium | Milestone: Website Management, Bots Component: website | Version: Resolution: | Keywords: --------------------------+-------------------------------------- Changes (by strk): * type: defect => enhancement -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Sep 4 00:21:39 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 04 Sep 2026 07:21:39 -0000 Subject: [PostGIS] #6126: Document requirement for ci status update In-Reply-To: <046.97463d96fe4539a480dac9955754bd7b@osgeo.org> References: <046.97463d96fe4539a480dac9955754bd7b@osgeo.org> Message-ID: <061.81923c4c86ec2abc085677a695f45e93@osgeo.org> #6126: Document requirement for ci status update --------------------------+-------------------------------------- Reporter: strk | Owner: robe Type: enhancement | Status: closed Priority: medium | Milestone: Website Management, Bots Component: website | Version: Resolution: invalid | Keywords: --------------------------+-------------------------------------- Changes (by strk): * resolution: => invalid * status: new => closed Comment: Oh never mind, I see that README documents `make publish` which in turn ends up calling the `ci` target, so we can say it IS documented. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Fri Sep 4 03:39:21 2026 From: git at osgeo.org (git at osgeo.org) Date: Fri, 4 Sep 2026 03:39:21 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-23-gd4a080923 Message-ID: <20260904103921.D65541A5482@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via d4a0809234543b13ec401d43ffd57290b6cc208a (commit) from 5c6ed8fb748983124d43acd7edde3d36c38abfa0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d4a0809234543b13ec401d43ffd57290b6cc208a Author: Teramoto Ikuhiro Date: Fri Sep 4 09:30:01 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 100.0% (6037 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index f50cec97f..1bde81609 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-02 02:39+0000\n" +"PO-Revision-Date: 2026-09-04 10:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- PostGIS From trac at osgeo.org Fri Sep 4 07:20:25 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 04 Sep 2026 14:20:25 -0000 Subject: [PostGIS] #6124: 3.7.0rc1 docs build failure without error message (was: 3.7.0rc1 compile failure on NetBSD) In-Reply-To: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> References: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> Message-ID: <061.79990701079b2c74ab05a1ea9dff9908@osgeo.org> #6124: 3.7.0rc1 docs build failure without error message ----------------------------+--------------------------- Reporter: robe | Owner: robe Type: defect | Status: new Priority: blocker | Milestone: PostGIS 3.7.0 Component: documentation | Version: master Resolution: | Keywords: ----------------------------+--------------------------- Changes (by gdt): * cc: gdt (added) * priority: medium => blocker * summary: 3.7.0rc1 compile failure on NetBSD => 3.7.0rc1 docs build failure without error message Comment: This is about the docs build. I retitled away from NetBSD because there's no evidence this is OS specific -- just that I don't happen to have random non-documented things installed that are present in some other environments. There are probably three problems. One is that there are some new (relative to 3.6) dependencies to build the documentation, and those are not noted in NEWS and the in-distfille build instructions reachable from README. Best practice for packaging is to hide/withdraw all things which are not declared dependencies, so this likely affects multiple packaging systems. The second is that this arguably should have been caught by CI, which should only install documented dependencies. The third problem is that when the secret dependency isn't available, the docs build just skips a step, apparently -- but it's later fatal that it didn't happen. If it's a dependency, then configure or build should fail with an explicit error. For the release, the docs need fixing. The rest should happen, but it's less critical. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Sun Sep 6 17:30:59 2026 From: git at osgeo.org (git at osgeo.org) Date: Sun, 6 Sep 2026 17:30:59 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-24-gb75b08d45 Message-ID: <20260907003100.751FE1BC5AE@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via b75b08d4522e90910e7ea0d3b7897433641a2926 (commit) from d4a0809234543b13ec401d43ffd57290b6cc208a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b75b08d4522e90910e7ea0d3b7897433641a2926 Author: Teramoto Ikuhiro Date: Mon Sep 7 00:28:51 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 100.0% (6037 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 1bde81609..aa2be6704 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-04 10:39+0000\n" +"PO-Revision-Date: 2026-09-07 00:30+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -1063,8 +1063,8 @@ msgid "" "Creates a table that will hold some interesting values for managing history " "tables. Creates a table called historic_information" msgstr "" -"??????????????????????????????????" -"historic_information??????" +"?????????????????????????????????? " +"historic_information ??????" #. Tag: para #, no-c-format @@ -3886,7 +3886,7 @@ msgstr "GEOS ??????????????" #. Tag: para #, no-c-format msgid "These examples use edges we created in " -msgstr "?????????????????" +msgstr "???? ?????????????" #. Tag: para #, no-c-format @@ -5288,8 +5288,8 @@ msgstr "" msgid "" "This uses the topo geometry we created in " msgstr "" -"????????? TopoGeometry ?????" -"????" +"???? ????? TopoGeometry ????" +"?????" #. Tag: para #, no-c-format @@ -5823,8 +5823,8 @@ msgid "" "Retrieve the PostGIS source archive from the downloads website &postgis_download_url; " msgstr "" -"????????? " -"&postgis_download_url; ??????????????????" +"????????? " +"&postgis_download_url; ??????????????????" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Sep 7 00:39:17 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 00:39:17 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-25-ga63ceaff1 Message-ID: <20260907073918.3B8501C68A4@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via a63ceaff1b4f012d33e66f082b202b6c93c326d5 (commit) from b75b08d4522e90910e7ea0d3b7897433641a2926 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a63ceaff1b4f012d33e66f082b202b6c93c326d5 Author: Teramoto Ikuhiro Date: Mon Sep 7 05:44:44 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 100.0% (6037 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index aa2be6704..80eed9ddf 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-07 00:30+0000\n" +"PO-Revision-Date: 2026-09-07 07:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -302,7 +302,7 @@ msgid "" "way is no longer supported." msgstr "" "????????????????????????????????" -"?????????????????????????????? ?? SQL " +"???????????????????????????????? SQL " "??????????????????????SQL ??????????????" "???????????????????????????" @@ -352,7 +352,7 @@ msgid "" "This second call is needed to rebundle the postgis_raster " "extension." msgstr "" -"??????????? postgis_raster??????????" +"??????????? postgis_raster ??????????" "????????" #. Tag: para @@ -420,8 +420,9 @@ msgid "" "safely drop, if you don't need raster support." msgstr "" "PostGIS ????????? 3.0.0?????????????????????" -"????????postgis_raster?????????????" -"??????????????????????????????????????" +"????????postgis_raster ????????????" +"??????????????????????????????????????" +"?" #. Tag: title #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Sep 7 05:23:24 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 05:23:24 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-29-gc0793ca1e Message-ID: <20260907122324.D26901CEC70@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via c0793ca1e25eba653a5cc500f600daa9fd936f68 (commit) via 95abfeebc9c30f325bb6ad8b07e13eb774696ce2 (commit) via 269bafce80a93c5b38ab2b05975056dcc1c5c1a1 (commit) via 828d586e6cb8c3941b3b6f7c1df1c6d94db546ed (commit) from a63ceaff1b4f012d33e66f082b202b6c93c326d5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c0793ca1e25eba653a5cc500f600daa9fd936f68 Merge: a63ceaff1 95abfeebc Author: Darafei Praliaskouski Date: Mon Sep 7 05:23:22 2026 -0700 Merge pull request 'Reject empty geometry type modifiers' (!769) from Komzpa/postgis:codex/postgis-1176-20260907 into master Reject empty geometry type modifiers before computing the trailing-space index in geometry_type_from_string(). This prevents an out-of-bounds read caused by strlen(str) - 1 underflow. Add regression coverage for empty input and preserve initialized output values on failure. Patch by Egor Ivkov, with SQL regression coverage and contributor metadata updates by Darafei Praliaskouski. Closes #6118 Closes https://github.com/postgis/postgis/pull/1176 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/769 commit 95abfeebc9c30f325bb6ad8b07e13eb774696ce2 Merge: 269bafce8 a63ceaff1 Author: Darafei Praliaskouski Date: Mon Sep 7 15:12:52 2026 +0400 Preserve empty typmod outputs and add SQL regression coverage Keep the two original contributor commits unchanged and integrate current master. Initialize output fields before rejecting an empty modifier, assert the failure contract, and add SQL regression coverage, release notes and author alias normalization. References #6118 diff --cc .mailmap index 7fe3926ab,7fe3926ab..359927848 --- a/.mailmap +++ b/.mailmap @@@ -40,6 -40,6 +40,8 @@@ Mehmet Ince Meh Edouard Choini?re Edouard Choiniere ++Egor Ivkov ++ Esteban Zim?nyi Esteban ZIMANYI Esteban Zim?nyi Esteban Zimanyi Esteban Zim?nyi Esteban Zimanyi diff --cc NEWS index 8fa9ba9cb,fa9879877..e9da6cc3c --- a/NEWS +++ b/NEWS @@@ -1,3 -1,174 +1,176 @@@ + PostGIS 3.7.0rc2 + 2026/xx/xx + + This version requires GEOS 3.10+, PostgreSQL 14-19beta1, Proj 6.1+, and libgmp. + To take advantage of all postgis extension features, GEOS 3.15+ is needed. + To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed. + + * Breaking Changes * + + - #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) + + * New Features * + + - #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) + + * Enhancements * + + - #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-interposition` when + 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 18 `pgbench` microbenchmark over 100k four-point + groups this reduced `ST_Collect` aggregate latency by about 4% + (Darafei Praliaskouski) + - #5973, Install PostGIS utilities under `pg_config --bindir` by default + and document `pg_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) + + * Bug Fixes * + ++ - #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) + + + + + PostGIS 3.7.0rc1 2026/08/24 This version requires GEOS 3.10+, PostgreSQL 14-19beta2, Proj 6.1+, libgmp. diff --cc liblwgeom/cunit/cu_gserialized1.c index 72840c670,c31228c75..73359d720 --- a/liblwgeom/cunit/cu_gserialized1.c +++ b/liblwgeom/cunit/cu_gserialized1.c @@@ -444,14 -444,6 +444,20 @@@ static void test_geometry_type_from_str //printf("\n in type: %s\nout type: %d\n out z: %d\n out m: %d", str, type, z, m); CU_ASSERT_EQUAL(rv, LW_FAILURE); ++ /* Empty and whitespace-only modifiers must fail without reading past input. */ ++ type = 42; ++ z = 1; ++ m = 1; + str = ""; + rv = geometry_type_from_string(str, &type, &z, &m); + CU_ASSERT_EQUAL(rv, LW_FAILURE); ++ CU_ASSERT_EQUAL(type, 0); ++ CU_ASSERT_EQUAL(z, 0); ++ CU_ASSERT_EQUAL(m, 0); + + str = " "; + rv = geometry_type_from_string(str, &type, &z, &m); + CU_ASSERT_EQUAL(rv, LW_FAILURE); - } static void test_lwgeom_count_vertices(void) diff --cc liblwgeom/lwutil.c index a175dc1ba,514976d1c..95cae7031 --- a/liblwgeom/lwutil.c +++ b/liblwgeom/lwutil.c @@@ -488,9 -482,9 +483,14 @@@ int geometry_type_from_string(const cha *z = 0; *m = 0; ++ str_len = strlen(str); ++ /* Empty string is not a valid type. */ ++ if (str_len == 0) ++ return LW_FAILURE; ++ /* Locate any leading/trailing spaces */ tmpstartpos = 0; - for (i = 0; i < strlen(str); i++) + for (i = 0; i < str_len; i++) { if (str[i] != ' ') { diff --cc regress/core/lwgeom_regress.sql index 3c647e3c8,3c647e3c8..d7de1a420 --- a/regress/core/lwgeom_regress.sql +++ b/regress/core/lwgeom_regress.sql @@@ -220,4 -220,4 +220,5 @@@ select 'typmod_point_-1', geometry_typm select 'typmod_pointzm_0', geometry_typmod_out(geometry_typmod_in('{PointZM,0}')); select 'typmod_geometry_0', geometry_typmod_out(geometry_typmod_in('{Geometry,0}')); select 'typmod_geometry_4326', geometry_typmod_out(geometry_typmod_in('{Geometry,4326}')); ++select 'typmod_empty', geometry_typmod_out(geometry_typmod_in('{""}')); select 'typmod_geography_0', geometry_typmod_out(geometry_typmod_in('{Geogrpahy,0}')); diff --cc regress/core/lwgeom_regress_expected index 8239d0fec,8239d0fec..e04017250 --- a/regress/core/lwgeom_regress_expected +++ b/regress/core/lwgeom_regress_expected @@@ -57,4 -57,4 +57,5 @@@ typmod_point_-1|(Point typmod_pointzm_0|(PointZM) typmod_geometry_0| typmod_geometry_4326|(Geometry,4326) ++ERROR: Invalid geometry type modifier: ERROR: Invalid geometry type modifier: Geogrpahy commit 269bafce80a93c5b38ab2b05975056dcc1c5c1a1 Author: Egor Ivkov Date: Mon Aug 31 16:56:34 2026 +0300 Add CUnit coverage for empty geometry type strings Covers the empty and all-spaces type modifiers rejected by the previous commit. diff --git a/liblwgeom/cunit/cu_gserialized1.c b/liblwgeom/cunit/cu_gserialized1.c index c31228c75..72840c670 100644 --- a/liblwgeom/cunit/cu_gserialized1.c +++ b/liblwgeom/cunit/cu_gserialized1.c @@ -444,6 +444,14 @@ static void test_geometry_type_from_string(void) //printf("\n in type: %s\nout type: %d\n out z: %d\n out m: %d", str, type, z, m); CU_ASSERT_EQUAL(rv, LW_FAILURE); + str = ""; + rv = geometry_type_from_string(str, &type, &z, &m); + CU_ASSERT_EQUAL(rv, LW_FAILURE); + + str = " "; + rv = geometry_type_from_string(str, &type, &z, &m); + CU_ASSERT_EQUAL(rv, LW_FAILURE); + } static void test_lwgeom_count_vertices(void) commit 828d586e6cb8c3941b3b6f7c1df1c6d94db546ed Author: Egor Ivkov Date: Wed Aug 5 17:20:48 2026 +0300 geometry_type_from_string: reject empty input For an empty string strlen(str) - 1 underflows the unsigned index, and the loop that skips trailing spaces then dereferences str at that index, far past its end. An empty type modifier reaches this function without any prior check, so reject it explicitly. diff --git a/liblwgeom/lwutil.c b/liblwgeom/lwutil.c index 514976d1c..a175dc1ba 100644 --- a/liblwgeom/lwutil.c +++ b/liblwgeom/lwutil.c @@ -471,12 +471,18 @@ int geometry_type_from_string(const char *str, uint8_t *type, int *z, int *m) char *tmpstr; size_t tmpstartpos, tmpendpos; size_t i; + size_t str_len; assert(str); assert(type); assert(z); assert(m); + str_len = strlen(str); + /* Empty string is not a valid type */ + if(str_len == 0) + return LW_FAILURE; + /* Initialize. */ *type = 0; *z = 0; @@ -484,7 +490,7 @@ int geometry_type_from_string(const char *str, uint8_t *type, int *z, int *m) /* Locate any leading/trailing spaces */ tmpstartpos = 0; - for (i = 0; i < strlen(str); i++) + for (i = 0; i < str_len; i++) { if (str[i] != ' ') { @@ -493,8 +499,8 @@ int geometry_type_from_string(const char *str, uint8_t *type, int *z, int *m) } } - tmpendpos = strlen(str) - 1; - for (i = strlen(str) - 1; i != 0; i--) + tmpendpos = str_len - 1; + for (i = str_len - 1; i != 0; i--) { if (str[i] != ' ') { ----------------------------------------------------------------------- Summary of changes: .mailmap | 2 ++ NEWS | 2 ++ liblwgeom/cunit/cu_gserialized1.c | 14 ++++++++++++++ liblwgeom/lwutil.c | 12 +++++++++--- regress/core/lwgeom_regress.sql | 1 + regress/core/lwgeom_regress_expected | 1 + 6 files changed, 29 insertions(+), 3 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Sep 7 05:23:26 2026 From: trac at osgeo.org (PostGIS) Date: Mon, 07 Sep 2026 12:23:26 -0000 Subject: [PostGIS] #6118: Out-of-bounds read in geometry_type_from_string() on an empty type modifier In-Reply-To: <048.2773313cdd5e364f9ac927a0f2383963@osgeo.org> References: <048.2773313cdd5e364f9ac927a0f2383963@osgeo.org> Message-ID: <063.e2b4b8b23df8e10a25027dad7f5558be@osgeo.org> #6118: Out-of-bounds read in geometry_type_from_string() on an empty type modifier -----------------------+----------------------------- Reporter: eivkov | Owner: pramsey Type: defect | Status: new Priority: critical | Milestone: PostGIS 3.6.5 Component: postgis | Version: master Resolution: | Keywords: buffer overflow -----------------------+----------------------------- Comment (by Darafei Praliaskouski ): In [changeset:"95abfeebc9c30f325bb6ad8b07e13eb774696ce2/git" 95abfeeb/git]: {{{#!CommitTicketReference repository="git" revision="95abfeebc9c30f325bb6ad8b07e13eb774696ce2" Preserve empty typmod outputs and add SQL regression coverage Keep the two original contributor commits unchanged and integrate current master. Initialize output fields before rejecting an empty modifier, assert the failure contract, and add SQL regression coverage, release notes and author alias normalization. References #6118 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Mon Sep 7 05:23:27 2026 From: trac at osgeo.org (PostGIS) Date: Mon, 07 Sep 2026 12:23:27 -0000 Subject: [PostGIS] #6118: Out-of-bounds read in geometry_type_from_string() on an empty type modifier In-Reply-To: <048.2773313cdd5e364f9ac927a0f2383963@osgeo.org> References: <048.2773313cdd5e364f9ac927a0f2383963@osgeo.org> Message-ID: <063.679b93336bacaf78b90181dedf8fc200@osgeo.org> #6118: Out-of-bounds read in geometry_type_from_string() on an empty type modifier -----------------------+----------------------------- Reporter: eivkov | Owner: pramsey Type: defect | Status: closed Priority: critical | Milestone: PostGIS 3.6.5 Component: postgis | Version: master Resolution: fixed | Keywords: buffer overflow -----------------------+----------------------------- Changes (by Darafei Praliaskouski ): * resolution: => fixed * status: new => closed Comment: In [changeset:"c0793ca1e25eba653a5cc500f600daa9fd936f68/git" c0793ca1/git]: {{{#!CommitTicketReference repository="git" revision="c0793ca1e25eba653a5cc500f600daa9fd936f68" Merge pull request 'Reject empty geometry type modifiers' (!769) from Komzpa/postgis:codex/postgis-1176-20260907 into master Reject empty geometry type modifiers before computing the trailing-space index in geometry_type_from_string(). This prevents an out-of-bounds read caused by strlen(str) - 1 underflow. Add regression coverage for empty input and preserve initialized output values on failure. Patch by Egor Ivkov, with SQL regression coverage and contributor metadata updates by Darafei Praliaskouski. Closes #6118 Closes https://github.com/postgis/postgis/pull/1176 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/769 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Sep 7 05:24:01 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 05:24:01 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-31-g3ad40ec15 Message-ID: <20260907122402.08A4C1CFAB3@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 3ad40ec15db646e492a730c5d9fa40567b82706a (commit) via 3e8e62832bc1ff99be9740e7523011e3b1dfbc24 (commit) from c0793ca1e25eba653a5cc500f600daa9fd936f68 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3ad40ec15db646e492a730c5d9fa40567b82706a Merge: c0793ca1e 3e8e62832 Author: Darafei Praliaskouski Date: Mon Sep 7 05:24:00 2026 -0700 Merge pull request 'Report actual face-update count when removing topology edges' (!770) from Komzpa/postgis:codex/postgis-1177-20260907 into master Report the actual face-update count when _lwt_RemEdge() receives an unexpected result from lwt_be_updateFacesById(). The error message previously printed an unrelated loop variable. Patch by Egor Ivkov. Closes https://github.com/postgis/postgis/pull/1177 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/770 commit 3e8e62832bc1ff99be9740e7523011e3b1dfbc24 Author: Egor Ivkov Date: Mon Aug 31 16:58:12 2026 +0300 _lwt_RemEdge: report the value the backend returned The unexpected-result branch printed the loop variable i, which at that point holds an unrelated edge/face id, instead of the number of faces lwt_be_updateFacesById() reported as updated. The sibling insertFaces branch a few lines below already reports result with %d. diff --git a/liblwgeom/topo/lwgeom_topo.c b/liblwgeom/topo/lwgeom_topo.c index 11fed9091..0ae5d883b 100644 --- a/liblwgeom/topo/lwgeom_topo.c +++ b/liblwgeom/topo/lwgeom_topo.c @@ -4396,7 +4396,7 @@ _lwt_RemEdge( LWT_TOPOLOGY* topo, LWT_ELEMID edge_id, int modFace ) if (result != 1) { _lwt_release_edges(edge, 1); - lwerror("Unexpected error: %" PRIu64 " faces updated when expecting 1", i); + lwerror("Unexpected error: %d faces updated when expecting 1", result); return -1; } } ----------------------------------------------------------------------- Summary of changes: liblwgeom/topo/lwgeom_topo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Sep 7 06:23:55 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 06:23:55 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-35-g17189b294 Message-ID: <20260907132355.EE48A91A5@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 17189b294f0094a60546c3f94973de6658f2db0b (commit) via e150cb8d27447ab20a793bf783e4b9c64e072871 (commit) via df26a094f342442572ea7132874a4a5c2a41670f (commit) via e1cabf91a2c80a8dbc32a88391b10dc404415dad (commit) from 3ad40ec15db646e492a730c5d9fa40567b82706a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 17189b294f0094a60546c3f94973de6658f2db0b Merge: 3ad40ec15 e150cb8d2 Author: Darafei Praliaskouski Date: Mon Sep 7 06:23:53 2026 -0700 Merge pull request 'Guard absent selectivity operands before reading node tags' (!771) from Komzpa/postgis:codex/postgis-1175-review-20260907 into master Prevent `gserialized_sel_internal` from passing an absent `other` node to PostgreSQL's `IsA` macro. Release `VariableStatData` and return the existing default selectivity before checking the node tag; the existing `Const` NULL path remains unchanged. This defensive check does not change the handling of SQL NULL values. Original patch by Maksim Korotkov . Closes https://github.com/postgis/postgis/pull/1175 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/771 commit e150cb8d27447ab20a793bf783e4b9c64e072871 Author: Darafei Praliaskouski Date: Mon Sep 7 17:13:18 2026 +0400 Document defensive selectivity operand check in NEWS diff --git a/NEWS b/NEWS index e9da6cc3c..069a05a2d 100644 --- a/NEWS +++ b/NEWS @@ -132,6 +132,9 @@ To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed * Bug Fixes * + - 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 commit df26a094f342442572ea7132874a4a5c2a41670f Merge: e1cabf91a 3ad40ec15 Author: Darafei Praliaskouski Date: Mon Sep 7 16:43:30 2026 +0400 Merge commit '3ad40ec15db646e492a730c5d9fa40567b82706a' into codex/postgis-1175-review-20260907 commit e1cabf91a2c80a8dbc32a88391b10dc404415dad Author: Maksim Korotkov Date: Sun Aug 23 11:52:29 2026 +0300 Make selectivity NULL-argument guard NULL-safe get_restriction_variable() can return true with *other NULL when estimate_expression_value() folds an expression to NULL (e.g. NULLIF or a NULL Const). The existing guard relied on IsA(other, Const), which dereferences other; a NULL other would hit nodeTag(NULL) and crash before the check ever ran. Fixes: c84b3f996e2eaea3ba3afeecb783113ab16f0982 Signed-off-by: Maksim Korotkov diff --git a/postgis/gserialized_estimate.c b/postgis/gserialized_estimate.c index 15791f382..c29df1b0c 100644 --- a/postgis/gserialized_estimate.c +++ b/postgis/gserialized_estimate.c @@ -2052,6 +2052,13 @@ gserialized_sel_internal(PlannerInfo *root, List *args, int varRelid, int mode) return DEFAULT_ND_SEL; } + if (other == NULL) + { + ReleaseVariableStats(vardata); + POSTGIS_DEBUGF(2, "%s: no other argument, returning default selectivity %g", __func__, DEFAULT_ND_SEL); + return DEFAULT_ND_SEL; + } + if (!IsA(other, Const)) { ReleaseVariableStats(vardata); @@ -2060,7 +2067,7 @@ gserialized_sel_internal(PlannerInfo *root, List *args, int varRelid, int mode) } otherConst = (Const*)other; - if ((!otherConst) || otherConst->constisnull) + if (otherConst->constisnull) { ReleaseVariableStats(vardata); POSTGIS_DEBUGF(2, "%s: constant argument is NULL", __func__); ----------------------------------------------------------------------- Summary of changes: NEWS | 3 +++ postgis/gserialized_estimate.c | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Sep 7 10:41:30 2026 From: trac at osgeo.org (PostGIS) Date: Mon, 07 Sep 2026 17:41:30 -0000 Subject: [PostGIS] #6127: PostgreSQL 20 doesn't work against 3.7.0 Message-ID: <046.409f179108ee60156d7b232551c379a0@osgeo.org> #6127: PostgreSQL 20 doesn't work against 3.7.0 ---------------------+--------------------------- Reporter: robe | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.7.1 Component: postgis | Version: master Keywords: | ---------------------+--------------------------- Both debbie and gha are registering errors because we haven't flipped their following of PostgreSQL master and amster recently flipped to PostgreSQL 20dev. That said recent changes have deviated enough from 19 to make it break with this error. {{{ make[1]: Entering directory '/src/postgis/libpgcommon' gcc -I./../liblwgeom -I../liblwgeom -I/usr/local/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include/mit-krb5 -I/usr/include/p11-kit-1 -I/usr/include/libxml2 -I/usr/local/include -I/usr/include/json-c -DNDEBUG -std=gnu11 -g -O0 -mtune=generic -fno-omit-frame-pointer --coverage -fno-math-errno -fno-signed-zeros -Wall -g -I/usr/local/pgsql/include/server -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include /mit-krb5 -I/usr/include/p11-kit-1 -fPIC -DPIC -c -o gserialized_gist.o gserialized_gist.c gcc -I./../liblwgeom -I../liblwgeom -I/usr/local/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include/mit-krb5 -I/usr/include/p11-kit-1 -I/usr/include/libxml2 -I/usr/local/include -I/usr/include/json-c -DNDEBUG -std=gnu11 -g -O0 -mtune=generic -fno-omit-frame-pointer --coverage -fno-math-errno -fno-signed-zeros -Wall -g -I/usr/local/pgsql/include/server -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include /mit-krb5 -I/usr/include/p11-kit-1 -fPIC -DPIC -c -o lwgeom_transform.o lwgeom_transform.c gcc -I./../liblwgeom -I../liblwgeom -I/usr/local/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include/mit-krb5 -I/usr/include/p11-kit-1 -I/usr/include/libxml2 -I/usr/local/include -I/usr/include/json-c -DNDEBUG -std=gnu11 -g -O0 -mtune=generic -fno-omit-frame-pointer --coverage -fno-math-errno -fno-signed-zeros -Wall -g -I/usr/local/pgsql/include/server -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include /mit-krb5 -I/usr/include/p11-kit-1 -fPIC -DPIC -c -o lwgeom_cache.o lwgeom_cache.c gcc -I./../liblwgeom -I../liblwgeom -I/usr/local/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include/mit-krb5 -I/usr/include/p11-kit-1 -I/usr/include/libxml2 -I/usr/local/include -I/usr/include/json-c -DNDEBUG -std=gnu11 -g -O0 -mtune=generic -fno-omit-frame-pointer --coverage -fno-math-errno -fno-signed-zeros -Wall -g -I/usr/local/pgsql/include/server -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include /mit-krb5 -I/usr/include/p11-kit-1 -fPIC -DPIC -c -o lwgeom_pg.o lwgeom_pg.c gcc -I./../liblwgeom -I../liblwgeom -I/usr/local/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include/mit-krb5 -I/usr/include/p11-kit-1 -I/usr/include/libxml2 -I/usr/local/include -I/usr/include/json-c -DNDEBUG -std=gnu11 -g -O0 -mtune=generic -fno-omit-frame-pointer --coverage -fno-math-errno -fno-signed-zeros -Wall -g -I/usr/local/pgsql/include/server -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -isystem /usr/include /mit-krb5 -I/usr/include/p11-kit-1 -fPIC -DPIC -c -o shared_gserialized.o shared_gserialized.c lwgeom_cache.c: In function 'ToastCacheGetGeometry': lwgeom_cache.c:235:32: error: storage size of 've' isn't known 235 | struct varatt_external ve; | ^~ lwgeom_cache.c:235:32: warning: unused variable 've' [-Wunused-variable] make[1]: *** [Makefile:69: lwgeom_cache.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/src/postgis/libpgcommon' make: *** [GNUmakefile:37: all] Error 1 }}} I don't think it's worth fixing for 3.7.0 release since we'll probably have many more breakages so pushing to 3.7.1 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Sep 7 13:14:09 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 13:14:09 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-36-g3fbdf1147 Message-ID: <20260907201409.CACB31B2630@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 3fbdf1147ed45c0836e7f29d5aa4e37c3c4cd52e (commit) from 17189b294f0094a60546c3f94973de6658f2db0b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3fbdf1147ed45c0836e7f29d5aa4e37c3c4cd52e Author: Regina Obe Date: Mon Sep 7 16:14:04 2026 -0400 Update docs and pot diff --git a/NEWS b/NEWS index 069a05a2d..0a08513f3 100644 --- a/NEWS +++ b/NEWS @@ -1,9 +1,10 @@ PostGIS 3.7.0rc2 -2026/xx/xx +2026/09/07 -This version requires GEOS 3.10+, PostgreSQL 14-19beta1, Proj 6.1+, and libgmp. +This version requires GEOS 3.10+, PostgreSQL 14-19beta3, Proj 6.1+, and libgmp. To take advantage of all postgis extension features, GEOS 3.15+ is needed. To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed. +Python 3 is a new requirement to build the documentation. * Breaking Changes * @@ -171,9 +172,6 @@ To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed GDAL compatibility (Darafei Praliaskouski) - - - PostGIS 3.7.0rc1 2026/08/24 This version requires GEOS 3.10+, PostgreSQL 14-19beta2, Proj 6.1+, libgmp. diff --git a/README.postgis b/README.postgis index 5fe870f4f..5c463f0e5 100644 --- a/README.postgis +++ b/README.postgis @@ -2,7 +2,7 @@ PostGIS - Geographic Information Systems Extensions to PostgreSQL ================================================================= :Version: 3.7.0 -:Date: 2026-09-01 +:Date: 2026-09-07 :Website: https://postgis.net This distribution contains a module which implements GIS simple features, ties diff --git a/doc/po/templates/postgis-manual.pot b/doc/po/templates/postgis-manual.pot index 702dab7ae..5a60449c2 100644 --- a/doc/po/templates/postgis-manual.pot +++ b/doc/po/templates/postgis-manual.pot @@ -4714,7 +4714,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "" -"GEOS geometry library, version &min_geos_version; or greater, but GEOS 3.14+ " +"GEOS geometry library, version &min_geos_version; or greater, but GEOS 3.15+ " "is required to take full advantage of all the new functions and features. " "GEOS is available for download from https://libgeos.org ." @@ -4723,19 +4723,26 @@ msgstr "" #. Tag: para #, no-c-format msgid "" -"LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports " -"functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for " -"download from https://gitlab.gnome.org/GNOME/libxml2/-/releases." +"LibXML2. LibXML2 is currently used in some imports functions (ST_GeomFromGML " +"and ST_GeomFromKML). LibXML2 is available for download from https://gitlab." +"gnome.org/GNOME/libxml2/-/releases." msgstr "" #. Tag: para #, no-c-format msgid "" -"JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON " -"via the function ST_GeomFromGeoJson. JSON-C is available for download from " -"https://" -"github.com/json-c/json-c/releases/." +"Perl is required to build PostGIS. Perl is available for download from https://www.perl.org/." +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"The iconv library is required by the shp2pgsql loader for encoding " +"conversion. On GNU/Linux systems it is typically provided by libc; on other " +"platforms you may need a separate libiconv package." msgstr "" #. Tag: para @@ -4744,15 +4751,16 @@ msgid "" "The GNU Multiple Precision Arithmetic Library (libgmp). Used to control " "precision of math operations in PostGIS Topology. GMP is available for " "download from https://gmplib.org/." +"link>. It is detected via pkg-config and has no fallback, " +"so pkg-config must be available for a default build." msgstr "" #. Tag: para #, no-c-format msgid "" -"GDAL, version 3+ is preferred. This is required for raster support. https://gdal.org/download." -"html." +"GDAL, version 2.4 or higher, is required for raster support. GDAL 3+ is " +"preferred. https://gdal." +"org/download.html." msgstr "" #. Tag: para @@ -4776,6 +4784,26 @@ msgid "" "linkend=\"raster_configuration\"/>." msgstr "" +#. Tag: para +#, no-c-format +msgid "" +"JSON-C. JSON-C is currently used to import GeoJSON via the function " +"ST_GeomFromGeoJson. JSON-C is available for download from https://github.com/json-c/" +"json-c/releases/. It is enabled by default but optional; if it is not " +"found configure only warns and the build continues. Disable with --" +"without-json." +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GNU gettext for loader and documentation translation support. It may be " +"disabled with --with-gettext=no. https://www.gnu.org/software/" +"gettext/." +msgstr "" + #. Tag: para #, no-c-format msgid "" @@ -4786,7 +4814,7 @@ msgstr "" #. Tag: para #, no-c-format msgid "" -"SFCGAL, 1.4.1 or higher is required, 2.3+ is needed to be able to use all " +"SFCGAL, 1.3.1 or higher is required, 2.3+ is needed to be able to use all " "functionality. SFCGAL can be used to provide additional 2D and 3D advanced " "analysis functions to PostGIS cf . https://sfcgal.gitlab.io/" @@ -4822,6 +4850,18 @@ msgid "" "docbook.org/\"> http://www.docbook.org/ ." msgstr "" +#. Tag: para +#, no-c-format +msgid "" +"Python 3 is required to run the manual example tester that generates the " +"visual examples which the HTML and PDF documentation embed. The examples are " +"executed against a live PostgreSQL server running the staged PostGIS build " +"via make -C regress visual-examples; no Python database " +"driver is required, the tooling talks to the server through the " +"psql client. Python 3 is available from https://www.python.org/ ." +msgstr "" + #. Tag: para #, no-c-format msgid "" @@ -13363,9 +13403,9 @@ msgstr "" #, no-c-format msgid "" "By default, GDAL logging is printed to stderr, and lower level debug " -"messages are not printed at all. Turning this GUC to true will cause GDAL " -"logging to be sent into the PostgreSQL logging stream, so you can see more " -"or less of it by altering the client_min_message PostgreSQL GUC." +"messages are not printed at all. Turning this GUC to true will cause " +"detailed GDAL logging to be sent into the PostgreSQL server log. PostgreSQL " +"clients receive only generic GDAL notice, debug, warning, or error messages." msgstr "" #. Tag: title @@ -15346,8 +15386,8 @@ msgstr "" #, no-c-format msgid "" "Removes a geometry column from a spatial table. Note that schema_name will " -"need to match the f_table_schema field of the table's row in the " -"geometry_columns table." +"need to match the f_table_schema field shown by the " +"geometry_columns view." msgstr "" #. Tag: para @@ -35894,10 +35934,10 @@ msgstr "" #. Tag: para #, no-c-format msgid "" -"This version requires GEOS 3.10+, PostgreSQL 14-19beta1, Proj 6.1+, libgmp. " -"To take advantage of all features postgis extension features, GEOS 3.15+ is " +"This version requires GEOS 3.10+, PostgreSQL 14-19beta3, Proj 6.1+, and " +"libgmp. To take advantage of all postgis extension features, GEOS 3.15+ is " "needed. To take advantage of all postgis_sfcgal extension features SFCGAL " -"2.3+ is needed." +"2.3+ is needed. Python 3 is a new requirement to build the documentation." msgstr "" #. Tag: title @@ -35967,6 +36007,14 @@ msgid "" "link>, CG_AlphaShape now returns a MultiPolygon (Jean Felder)" msgstr "" +#. Tag: para +#, no-c-format +msgid "" +"[docs] Python 3 and an SVG rasterizer (rsvg-convert preferred, " +"GraphicsMagick or ImageMagick supported) now required for doc building " +"(Darafei Praliaskouski)" +msgstr "" + #. Tag: title #, no-c-format msgid "New Features" @@ -36072,22 +36120,6 @@ msgid "" "Praliaskouski)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#5950, Document POSTGIS_REGRESS_DB_OWNER for sandboxed regression roles " -"(Darafei Praliaskouski)" -msgstr "" - -#. Tag: para -#, no-c-format -msgid "" -"#4332, Clarify the scope of several Function Reference categories (Darafei " -"Praliaskouski)" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36096,14 +36128,6 @@ msgid "" "Praliaskouski)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#5109, Document the meaning of topology.next_left_edge and topology." -"next_right_edge links (Darafei Praliaskouski)" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36120,14 +36144,6 @@ msgid "" "Ramsey)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#6022, Document ST_AsMVTGeom tile-coordinate simplification (Darafei " -"Praliaskouski)" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36173,14 +36189,6 @@ msgid "" "(Darafei Praliaskouski)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"[fuzzers] Centralize OSS-Fuzz build/dependency logic in PostGIS scripts, " -"prefer requested CXX over pg_config --cc for internal C++ checks, and make " -"fuzzer linking/runtime dependency packaging portable (Darafei Praliaskouski)" -msgstr "" - #. Tag: title #, no-c-format msgid "Enhancements" @@ -36210,6 +36218,14 @@ msgid "" "liblwgeom header (Darafei Praliaskouski)" msgstr "" +#. Tag: para +#, no-c-format +msgid "" +"#3776, [raster] Keep distinct 32-bit integer pixel values separate in " +"ST_DumpAsPolygons (Darafei Praliaskouski)" +msgstr "" + #. Tag: para #, no-c-format msgid "" @@ -36236,13 +36252,6 @@ msgid "" "Praliaskouski)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#2898, Document SQL function cost tiers for contributors" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36259,16 +36268,6 @@ msgid "" "collapsed elements (Sandro Santilli)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#3743, #4385, [raster loader] Document raster2pgsql -s " -"FROM_SRID:SRID reprojection support and clarify index creation timing for " -"append loads (Darafei Praliaskouski)" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36285,22 +36284,6 @@ msgid "" "GeometryCollections (Darafei Praliaskouski)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#5532, Validate the manual against DocBook XMLSchema in check-xml (Darafei " -"Praliaskouski)" -msgstr "" - -#. Tag: para -#, no-c-format -msgid "" -"#6087, Add a repository-owned CI status checker and static dashboard " -"generator (Darafei Praliaskouski)" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36333,13 +36316,6 @@ msgid "" "(Darafei Praliaskouski)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#2386, Add raster2pgsql man page (Darafei Praliaskouski)" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36367,31 +36343,6 @@ msgid "" "scripts are newer than core scripts (Darafei Praliaskouski)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#5593, Docs: render manual images with GraphicsMagick without temporary " -"files, enabling parallel builds, keeping ImageMagick fallbacks working, and " -"documenting the generator workflow for contributors (Darafei Praliaskouski)" -msgstr "" - -#. Tag: para -#, no-c-format -msgid "" -"#5645, Docs: keep code operators ("=>") intact in translated " -"manuals by enforcing verbatim CSS (Darafei Praliaskouski)" -msgstr "" - -#. Tag: para -#, no-c-format -msgid "" -"#1408, Docs: flatten transparent manual images onto white backgrounds for " -"PDF builds while keeping HTML images transparent (Darafei Praliaskouski)" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36400,14 +36351,6 @@ msgid "" "Praliaskouski)" msgstr "" -#. Tag: para -#, no-c-format -msgid "" -"#1705, Infer constraint metadata for direct view and materialized view " -"geometry columns (Darafei Praliaskouski)" -msgstr "" - #. Tag: para #, no-c-format msgid "" @@ -36416,6 +36359,15 @@ msgid "" "callbacks (Darafei Praliaskouski)" msgstr "" +#. Tag: para +#, no-c-format +msgid "" +"#6073, #6074, Stabilize geography LRS endpoint interpolation " +"and pole centroid regressions on 32-bit systems (Darafei Praliaskouski)" +msgstr "" + #. Tag: para #, no-c-format msgid "" @@ -36424,6 +36376,255 @@ msgid "" "(Darafei Praliaskouski)" msgstr "" +#. Tag: para +#, no-c-format +msgid "" +"#4616, Detect pgsql2shp query keywords case-insensitively (Darafei " +"Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#1986, ST_GeomFromGML support for GML ArcString and curved polygon rings " +"(Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#4749, Use point-in-polygon predicate fast paths for point-only " +"GeometryCollections, including ST_Disjoint (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#3676, Mark geometry and geography btree comparison support functions as " +"leakproof (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GH-875, Allow ST_OrderingEquals joins to use hash and merge join plans " +"(Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#1168, [raster] Support curved geometry inputs in ST_AsRaster (Darafei " +"Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#1416, ST_AsX3D outputs NURBSCURVE as X3D NurbsCurve and linearizes other " +"curve geometries (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#3705, ST_AsX3D outputs valid coordinate nodes for 2D multi-geometries and " +"GeometryCollections (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GT-484, Use column-level SELECT privileges for metadata " +"views (Arthur Bazin)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#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)" +msgstr "" + +#. Tag: title +#, no-c-format +msgid "Bug Fixes" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GH-1175, Guard missing operands before reading node tags in spatial " +"selectivity estimation (Maksim Korotkov)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#6118, Reject empty geometry type modifiers without an out-of-bounds read " +"(Egor Ivkov)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"Fix WKB and TWKB parser resource exhaustion on malformed input (Darafei " +"Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#6038, Avoid stale relation lookups in geometry_columns after topology " +"objects are dropped (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#5487, Improve error detail for repeated upgrades after an incomplete " +"deprecated-function cleanup (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#5975, Initialize skipped union-find cluster ids deterministically (Darafei " +"Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#5904, [topology] Avoid MinGW format warnings when logging topology ids " +"(Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GH-888, [sfcgal] Avoid stale detoasted geometry access in CG_Visibility empty-" +"input handling for SFCGAL < 2.2 (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#3179, Mark truncated libpgcommon PostgreSQL messages instead of silently " +"dropping the tail (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#6003, Avoid size_t formats in liblwgeom logging/error wrappers for MinGW " +"builds (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GH-886, ST_ClusterRelateWin validates NULL relate matrices before detoasting " +"them (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GH-889, ST_Relate pattern inversion avoids out-of-bounds access on short " +"DE-9IM patterns (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GH-890, Avoid GIDX BRIN summary merges across mismatched dimensions (Darafei " +"Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#5959, Prevent histogram target overflow when analysing massive tables " +"(Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#6080, Avoid out-of-bounds hex WKB lookup for high-bit input bytes (Darafei " +"Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#4828, geometry_columns handles NOT VALID SRID checks without errors " +"(Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"#6048, [raster] ST_Clip no longer crashes when clipping sparse band " +"selections (Darafei Praliaskouski)" +msgstr "" + +#. Tag: para +#, no-c-format +msgid "" +"GH-894, [raster] Fix Float16 import, mixed nodata warping, band replacement " +"cleanup, GDAL credential redaction, and Python GDAL compatibility (Darafei " +"Praliaskouski)" +msgstr "" + #. Tag: title #, no-c-format msgid "Reporting Problems" @@ -38519,10 +38720,10 @@ msgstr "" #. Tag: para #, no-c-format msgid "" -"Although the old constraint-based method is still supported, direct pass-" -"through view columns register correctly in geometry_columns for both typmod-based and constraint-based source columns. In this " -"example we define a column using typmod and another using constraints." +"Although the old-constraint based method is still supported, a constraint-" +"based geometry column used directly in a view, will not register correctly " +"in geometry_columns, as will a typmod one. In this example we define a " +"column using typmod and another using constraints." msgstr "" #. Tag: para @@ -38545,16 +38746,15 @@ msgstr "" #. Tag: para #, no-c-format msgid "" -"Both the typmod based geom view column and the direct constraint based view " -"column register correctly." +"The typmod based geom view column registers correctly, but the constraint " +"based one does not." msgstr "" #. Tag: para #, no-c-format msgid "" -"If the view applies a spatial function to the geometry, such as " -"ST_Transform, you still need to cast the transformed " -"column explicitly so the view can expose the correct type and SRID:" +"This may change in future versions of PostGIS, but for now to force the " +"constraint-based view column to register correctly, you need to do this:" msgstr "" #. Tag: title diff --git a/doc/release_notes.xml b/doc/release_notes.xml index 3958a7e9f..2c134e4ae 100644 --- a/doc/release_notes.xml +++ b/doc/release_notes.xml @@ -4,8 +4,11 @@
PostGIS 3.7.0 2026/xx/xx - This version requires GEOS 3.10+, PostgreSQL 14-19beta2, Proj 6.1+, libgmp. To take advantage of all features postgis extension features, GEOS 3.15+ is needed. To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed. - + This version requires GEOS 3.10+, PostgreSQL 14-19beta3, Proj 6.1+, and libgmp. + To take advantage of all postgis extension features, GEOS 3.15+ is needed. + To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed. + Python 3 is a new requirement to build the documentation. + Breaking Changes #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) @@ -15,6 +18,7 @@ #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) New Features @@ -31,51 +35,71 @@ #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) - #5950, Document POSTGIS_REGRESS_DB_OWNER for sandboxed regression roles (Darafei Praliaskouski) - #4332, Clarify the scope of several Function Reference categories (Darafei Praliaskouski) #4222, [raster] ST_DumpAsPolygons honours PostgreSQL interrupts (Darafei Praliaskouski) - #5109, Document the meaning of topology.next_left_edge and topology.next_right_edge links (Darafei Praliaskouski) #5889, [topology] Include representative locations in topology build errors (Darafei Praliaskouski) #2614, Use GEOSPreparedDistance and caching to accelerate ST_DWithin (Paul Ramsey) - #6022, Document ST_AsMVTGeom tile-coordinate simplification (Darafei Praliaskouski) 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) - [fuzzers] Centralize OSS-Fuzz build/dependency logic in PostGIS scripts, prefer requested CXX over pg_config --cc for internal C++ checks, and make fuzzer linking/runtime dependency packaging portable (Darafei Praliaskouski) Enhancements #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) - #2898, Document SQL function cost tiers for contributors #6062, [topology] Stop using recursive snapping, for improved robustness (Sandro Santilli) #6065, Improved winding order computation robustness for rings having collapsed elements (Sandro Santilli) - #3743, #4385, [raster loader] Document raster2pgsql -s FROM_SRID:SRID reprojection support and clarify index creation timing for append loads (Darafei Praliaskouski) #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) - #5532, Validate the manual against DocBook XMLSchema in check-xml (Darafei Praliaskouski) - #6087, Add a repository-owned CI status checker and static dashboard generator (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) - #2386, Add raster2pgsql man page (Darafei Praliaskouski) Build PostgreSQL extension modules with `-fno-semantic-interposition` when 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 18 `pgbench` microbenchmark over 100k four-point groups this reduced `ST_Collect` aggregate latency by about 4% (Darafei Praliaskouski) #5973, Install PostGIS utilities under `pg_config --bindir` by default and document `pg_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) - #5593, Docs: render manual images with GraphicsMagick without temporary files, enabling parallel builds, keeping ImageMagick fallbacks working, and documenting the generator workflow for contributors (Darafei Praliaskouski) - #5645, Docs: keep code operators ("=>") intact in translated manuals by enforcing verbatim CSS (Darafei Praliaskouski) - #1408, Docs: flatten transparent manual images onto white backgrounds for PDF builds while keeping HTML images transparent (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) + + + Bug Fixes + 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)
----------------------------------------------------------------------- Summary of changes: NEWS | 8 +- README.postgis | 2 +- doc/po/templates/postgis-manual.pot | 460 ++++++++++++++++++++++++++---------- doc/release_notes.xml | 54 +++-- 4 files changed, 373 insertions(+), 151 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Sep 7 18:02:43 2026 From: trac at osgeo.org (PostGIS) Date: Tue, 08 Sep 2026 01:02:43 -0000 Subject: [PostGIS] #6124: 3.7.0rc1 docs build failure without error message In-Reply-To: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> References: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> Message-ID: <061.297781a46d141b77d91a1bc5793c56f7@osgeo.org> #6124: 3.7.0rc1 docs build failure without error message ----------------------------+--------------------------- Reporter: robe | Owner: robe Type: defect | Status: new Priority: blocker | Milestone: PostGIS 3.7.0 Component: documentation | Version: master Resolution: | Keywords: ----------------------------+--------------------------- Comment (by robe): Confirmed not a freebsd specific issue. I guess cause our cis that build the docs build the visual-examples as a standalone step, but seems if you call {{{ gmake -C doc html }}} It never tries to run the visual-examples step, just tells you that you need to run it. Are you able to run {{{ make -C regress visual-examples }}} Just want to confirm we aren't missing any known dependencies. Note that the visual-examples requires a running PostgreSQL instance too as it tries to run thru the examples in the docs. I'm not setup locally to build the docs so that step fails for me. Anyway I'll sort this out before I push an rc2. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Sep 7 18:06:21 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 18:06:21 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-38-g54374cbf2 Message-ID: <20260908010621.888471B841F@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 54374cbf25fe631fc9f889ed854affbe46434f6d (commit) from 3ea728a32db17d317895e4d1b1ccccb7b0da996a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 54374cbf25fe631fc9f889ed854affbe46434f6d Author: Teramoto Ikuhiro Date: Tue Sep 8 01:06:03 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.3% (6022 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 66c4cadcc..fec819bba 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-07 07:39+0000\n" +"PO-Revision-Date: 2026-09-08 01:06+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -5964,6 +5964,10 @@ msgid "" "GEOS is available for download from https://libgeos.org ." msgstr "" +"GEOS ?????????????&min_geos_version; ?????????????" +"??????????? GEOS 3.15 ????????GEOS ? https://libgeos.org ??" +"???????????" #. Tag: para #, no-c-format @@ -5973,6 +5977,10 @@ msgid "" "xlink:href=\"https://gitlab.gnome.org/GNOME/libxml2/-/releases\">https://" "gitlab.gnome.org/GNOME/libxml2/-/releases." msgstr "" +"LibXML2??????????? (ST_GeomFromGML ? ST_GeomFromKML) ??????" +"???LibXML2 ? https://gitlab.gnome.org/GNOME/libxml2/-/releases ??" +"???????????" #. Tag: para #, no-c-format @@ -5980,6 +5988,8 @@ msgid "" "Perl is required to build PostGIS. Perl is available for download from https://www.perl.org/." msgstr "" +"Perl ? PostGIS ??????????Perl ? https://www.perl.org/ ?????????????" #. Tag: para #, no-c-format @@ -5989,6 +5999,10 @@ msgid "" "platforms you may need a separate libiconv package." msgstr "" +"iconv ??????? shp2pgsql ??????????????????GNU/Linux " +"??????????? libc ????????????????????????" +"? libiconv ???????????" #. Tag: para #, no-c-format @@ -6007,6 +6021,9 @@ msgid "" "preferred. https://" "gdal.org/download.html." msgstr "" +"GDAL?2.4???????????????GDAL 3??????????https://gdal.org/" +"download.html?" #. Tag: para #, no-c-format @@ -6045,6 +6062,12 @@ msgid "" "is not found configure only warns and the build continues. Disable with " "--without-json." msgstr "" +"JSON-C????ST_GeomFromGeoJson ??? GeoJSON ????????????JSON-" +"C ? link xlink:href=\"https://github.com/json-c/json-c/releases\">https://" +"github.com/json-c/json-c/releases/ ?????????????" +"???????????????????????configure ????????" +"???????????????????? --without-json ?" +"???????" #. Tag: para #, no-c-format @@ -6054,6 +6077,9 @@ msgid "" "xlink:href=\"https://www.gnu.org/software/gettext/\">https://www.gnu.org/" "software/gettext/." msgstr "" +"GNU gettext???????????????????--with-gettext=no ????????https://www.gnu.org/software/gettext/?" #. Tag: para #, no-c-format @@ -6074,6 +6100,11 @@ msgid "" "xlink:href=\"https://sfcgal.gitlab.io/sfcgal/\">https://sfcgal.gitlab.io/" "sfcgal/." msgstr "" +"SFCGAL?1.3.1??????????????????????????????" +"2.3????????SFCGAL?? ?????" +"???? 2??? 3??????????? PostGIS ????????????" +"?https://" +"sfcgal.gitlab.io/sfcgal/?" #. Tag: para #, no-c-format @@ -16713,6 +16744,11 @@ msgid "" "detailed GDAL logging to be sent into the PostgreSQL server log. PostgreSQL " "clients receive only generic GDAL notice, debug, warning, or error messages." msgstr "" +"????????GDAL ????????????????????" +"?????????????????????? GUC ? TRUE ??????????" +"???? GDAL ??? PostgreSQL ??????????????????????" +"? PostgreSQL ????????????????? notice?debug?warning?" +"error ???????????" #. Tag: title #, no-c-format @@ -19111,6 +19147,9 @@ msgid "" "need to match the f_table_schema field shown by the " "geometry_columns view." msgstr "" +"????????????????????????schema_name ? " +"geometry_columns ???? f_table_schema ?????????????" +"?????????????" #. Tag: para #, no-c-format @@ -44849,6 +44888,10 @@ msgid "" "needed. To take advantage of all postgis_sfcgal extension features SFCGAL " "2.3+ is needed. Python 3 is a new requirement to build the documentation." msgstr "" +"????????? GEOS 3.10 ???PostgreSQL 14-19beta3?Proj 6.1 ???" +"libgmp ????????? PostGIS ?????????????????? GEOS " +"3.15 ??????????? postgis_sfcgal ?????????????????" +"? SFCGAL 2.3 ????????Python 3 ??????????????????" #. Tag: title #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Sep 7 18:43:17 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 18:43:17 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-42-g8614c07a4 Message-ID: <20260908014317.926231B87DF@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 8614c07a40178981ea16e4ecf4be85d0156ccc17 (commit) via d9760cc174776ba7abe72572709ee84ff529239e (commit) via 33bc17e7c8ef88150a624ae11c30013b9a016297 (commit) via 748d1018fdf67b183722f801b848727faccb3fde (commit) from 54374cbf25fe631fc9f889ed854affbe46434f6d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8614c07a40178981ea16e4ecf4be85d0156ccc17 Author: Regina Obe Date: Mon Sep 7 21:40:13 2026 -0400 Don't give a confusing error when visual-examples has not been run yet Give a simple note that it needs to be run to build docs and then stop Also note in the NEWS that visual-examples is a requirement for doc building Closes #6124 for PostGIS 3.7.0 diff --git a/NEWS b/NEWS index 0a08513f3..5443b197a 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,12 @@ To take advantage of all postgis extension features, GEOS 3.15+ is needed. To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed. Python 3 is a new requirement to build the documentation. +To build docs, first run visual examples and make sure you have a running +PostgreSQL instance. + +`make -C regress visual-examples` + + * Breaking Changes * - #5688, [topology] topology building functions now interpret tolerance 0 diff --git a/doc/Makefile.in b/doc/Makefile.in index 7353f9a51..a0e186e3b 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -548,7 +548,7 @@ $(html_builddir)/postgis$(DOCSUFFIX).html: postgis-out.xml Makefile $(HTML_DOCBO $< -postgis-${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}.${POSTGIS_MICRO_VERSION}$(DOCSUFFIX).pdf: postgis-out.xml $(abs_srcdir)/texstyle-common.sty $(abs_srcdir)/texstyle.sty $(POSTGIS_DBLATEX_BLOCK_LABELS_XSL) $(POSTGIS_HTML_BLOCK_LABELS_XSL) $(POSTGIS_BLOCK_LABELS_COMMON_XSL) $(visual_examples_inputs) | images pdf-images +postgis-${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}.${POSTGIS_MICRO_VERSION}$(DOCSUFFIX).pdf: postgis-out.xml $(abs_srcdir)/texstyle-common.sty $(abs_srcdir)/texstyle.sty $(POSTGIS_DBLATEX_BLOCK_LABELS_XSL) $(POSTGIS_HTML_BLOCK_LABELS_XSL) $(POSTGIS_BLOCK_LABELS_COMMON_XSL) $(visual_examples_inputs) | visual-examples images pdf-images ifeq ($(DBLATEX),) @echo @echo "configure was unable to find the 'dblatex' utility program." @@ -623,9 +623,9 @@ images images-install images-uninstall images-clean: $(MAKE) -C $(images_builddir) $@ visual-examples: - $(MAKE) -C $(images_builddir) visual-examples-check + @$(if $(shell test -s '$(visual_examples_manifest)' && echo ok),true,$(error Visual examples are missing. Run 'make -C regress visual-examples' first.)) -pdf-images: images +pdf-images: visual-examples images $(MAKE) -C $(images_builddir) $@ PDF_IMAGES_BUILD_DIR="$(pdf_images_builddir)" html-clean: diff --git a/doc/html/images/Makefile.in b/doc/html/images/Makefile.in index b417b93ec..2cdd8e0d6 100644 --- a/doc/html/images/Makefile.in +++ b/doc/html/images/Makefile.in @@ -49,14 +49,7 @@ images: visual-examples-check $(ALL_IMAGES) pdf-images: $(PDF_IMAGES) visual-examples-pdf visual-examples-check: - @test -s $(VISUAL_EXAMPLES_MANIFEST) || { \ - echo "Visual examples are missing. Run 'make -C regress visual-examples' first." >&2; \ - exit 1; \ - } - @test -s $(VISUAL_EXAMPLES_XML_MANIFEST) || { \ - echo "Visual example XML manifest is missing. Run 'make -C regress visual-examples' first." >&2; \ - exit 1; \ - } + @$(if $(shell test -s '$(VISUAL_EXAMPLES_MANIFEST)' && test -s '$(VISUAL_EXAMPLES_XML_MANIFEST)' && echo ok),true,$(error Visual examples are missing. Run 'make -C regress visual-examples' first.)) visual-examples-pdf: visual-examples-check @mkdir -p $(PDF_IMAGES_BUILD_DIR)/$(VISUAL_EXAMPLES_DIR) commit d9760cc174776ba7abe72572709ee84ff529239e Author: Regina Obe Date: Mon Sep 7 20:15:44 2026 -0400 GHA stop testing latest and change to pg19 - latest is now at PostgreSQL 20, which is broken against 3.7 - Instead swap out with pg19-geosmain-gdalmaster-proj98 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 707beab9a..c9d4d16c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,9 +36,9 @@ jobs: #- { tag: pg13-geos39-gdal31-proj71, mode: usan_gcc } #- { tag: pg14-clang-geos39-gdal31-proj71, mode: usan_clang } # Run tests with different dependency combinations - - { tag: latest, mode: tests } + - { tag: pg19-geosmain-gdalmaster-proj98, mode: tests } - { tag: pg18-geosmain-gdal311-proj96, mode: standard_conforming_strings_off } - - { tag: latest, mode: garden } + - { tag: pg19-geosmain-gdalmaster-proj98, mode: garden } runs-on: ubuntu-latest steps: commit 33bc17e7c8ef88150a624ae11c30013b9a016297 Author: Regina Obe Date: Mon Sep 7 20:11:54 2026 -0400 WINNIE changes - Update winnie default versions of libraries - Make -j configurable, but default to 2 if not passed in diff --git a/ci/winnie/regress_postgis.sh b/ci/winnie/regress_postgis.sh index a51319b89..2c48f998b 100644 --- a/ci/winnie/regress_postgis.sh +++ b/ci/winnie/regress_postgis.sh @@ -98,7 +98,7 @@ LDFLAGS="-Wl,--enable-auto-import -L${PGPATH}/lib -L${LZ4_PATH}/lib -L${PROJECTS #patch liblwgeom generated make to get rid of dynamic linking #sed -i 's/LDFLAGS += -no-undefined//g' liblwgeom/Makefile -make -j 2 +make -j $NPROC make install # don't run tests twice. Only run regular if extension test is not asked for diff --git a/ci/winnie/winnie_common.sh b/ci/winnie/winnie_common.sh index 1739cd7d7..c264be2bc 100644 --- a/ci/winnie/winnie_common.sh +++ b/ci/winnie/winnie_common.sh @@ -12,17 +12,17 @@ export MSYS2_ARG_CONV_EXCL=/config/tags export XML_CATALOG_FILES="/projects/docbook/docbook-5.0.1/catalog.xml" if [[ "${OVERRIDE}" == '' ]] ; then - export GEOS_VER=3.13.1 - export GDAL_VER=3.9.2 - export PROJ_VER=8.2.1 + export GEOS_VER=3.15.0 + export GDAL_VER=3.13.1 + export PROJ_VER=9.8.1 export SFCGAL_VER=2.3.0 - export CGAL_VER=6.0.1 + export CGAL_VER=6.0.2 export ICON_VER=1.17 export ZLIB_VER=1.2.13 export PROTOBUF_VER=3.2.0 export PROTOBUFC_VER=1.2.1 export JSON_VER=0.16 - export PROJSO=libproj_8_2.dll + export PROJSO=libproj_9.dll export LZ4_VER=1.9.3 fi; @@ -45,6 +45,11 @@ if [[ "${ICON_VER}" == '' ]] ; then export ICON_VER=1.17 fi; + +if [[ "${NPROC}" == '' ]] ; then + export NPROC=2 +fi; + echo "ICON_VER ${ICON_VER}" if [[ "${LZ4_VER}" == '' ]] ; then commit 748d1018fdf67b183722f801b848727faccb3fde Author: Regina Obe Date: Mon Sep 7 20:10:44 2026 -0400 PREPPING FOR 3.7.0rc2 RELEASE - Update versions in docs diff --git a/doc/postgis.xml b/doc/postgis.xml index e6566362e..55c3147ea 100644 --- a/doc/postgis.xml +++ b/doc/postgis.xml @@ -13,10 +13,10 @@ - + - + ----------------------------------------------------------------------- Summary of changes: .github/workflows/ci.yml | 4 ++-- NEWS | 6 ++++++ ci/winnie/regress_postgis.sh | 2 +- ci/winnie/winnie_common.sh | 15 ++++++++++----- doc/Makefile.in | 6 +++--- doc/html/images/Makefile.in | 9 +-------- doc/postgis.xml | 4 ++-- 7 files changed, 25 insertions(+), 21 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Mon Sep 7 18:43:19 2026 From: trac at osgeo.org (PostGIS) Date: Tue, 08 Sep 2026 01:43:19 -0000 Subject: [PostGIS] #6124: 3.7.0rc1 docs build failure without error message In-Reply-To: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> References: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> Message-ID: <061.0958aba6acb24f07af74d1baaaf742b0@osgeo.org> #6124: 3.7.0rc1 docs build failure without error message ----------------------------+--------------------------- Reporter: robe | Owner: robe Type: defect | Status: closed Priority: blocker | Milestone: PostGIS 3.7.0 Component: documentation | Version: master Resolution: fixed | Keywords: ----------------------------+--------------------------- Changes (by Regina Obe ): * resolution: => fixed * status: new => closed Comment: In [changeset:"8614c07a40178981ea16e4ecf4be85d0156ccc17/git" 8614c07a/git]: {{{#!CommitTicketReference repository="git" revision="8614c07a40178981ea16e4ecf4be85d0156ccc17" Don't give a confusing error when visual-examples has not been run yet Give a simple note that it needs to be run to build docs and then stop Also note in the NEWS that visual-examples is a requirement for doc building Closes #6124 for PostGIS 3.7.0 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Mon Sep 7 19:39:17 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 19:39:17 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-43-gf3b0d75e4 Message-ID: <20260908023917.F24801B9F14@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via f3b0d75e4ffe0473edc315182a2053bde1a9344a (commit) from 8614c07a40178981ea16e4ecf4be85d0156ccc17 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f3b0d75e4ffe0473edc315182a2053bde1a9344a Author: Teramoto Ikuhiro Date: Tue Sep 8 02:06:55 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.4% (6028 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index fec819bba..9af9403bb 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-08 01:06+0000\n" +"PO-Revision-Date: 2026-09-08 02:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -6013,6 +6013,11 @@ msgid "" "link>. It is detected via pkg-config and has no fallback, " "so pkg-config must be available for a default build." msgstr "" +"GNU ????????????? (libgmp)?PostGIS ??????????????" +"?????????????GMP ? " +"https://gmplib.org/ ????????????????????????" +"? pkg-config ??????????????????????" +"????? pkg-config ???????????????" #. Tag: para #, no-c-format @@ -6160,6 +6165,11 @@ msgid "" "psql client. Python 3 is available from https://www.python.org/ ." msgstr "" +"Python 3 ????????????????????????????????? " +"HTML ? PDF ????????????????????????? " +"make -C regress visual-examples ?????????? PostGIS ???" +"?????? PostgreSQL ????????????????????? " +"psql ?????????????????????" #. Tag: para #, no-c-format @@ -44990,6 +45000,9 @@ msgid "" "GraphicsMagick or ImageMagick supported) now required for doc building " "(Darafei Praliaskouski)" msgstr "" +"[docs] ?????? Python 3 ? SVG ???????? (rsvg-convert ?????" +"??GraphicsMagick ? ImageMagick ????) ?????????? (Darafei " +"Praliaskouski ??)" #. Tag: title #, no-c-format @@ -45272,6 +45285,9 @@ msgid "" "link>, [raster] Keep distinct 32-bit integer pixel values separate in " "ST_DumpAsPolygons (Darafei Praliaskouski)" msgstr "" +"#3776" +", [raster] ST_DumpAsPolygons ???? 32??????????????????" +"????????? (Darafei Praliaskouski??)" #. Tag: para #, no-c-format @@ -45487,6 +45503,9 @@ msgid "" "link>, Detect pgsql2shp query keywords case-insensitively (Darafei " "Praliaskouski)" msgstr "" +"#4616" +", pgsql2shp ???????????????????????????????? " +"(Darafei Praliaskouski)" #. Tag: para #, no-c-format @@ -45495,6 +45514,9 @@ msgid "" "link>, ST_GeomFromGML support for GML ArcString and curved polygon rings " "(Darafei Praliaskouski)" msgstr "" +"#1986" +", ST_GeomFromGML ? GML ArcString ????????????????? " +"(Darafei Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Sep 7 20:47:48 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 20:47:48 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-45-gde11dcfb0 Message-ID: <20260908034748.D718B1BB500@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via de11dcfb03729f399ffdcea1f8135dc0973c0e2b (commit) via 3b97ea26018f106d6bd0ad050d1431ad3d6a988f (commit) from f3b0d75e4ffe0473edc315182a2053bde1a9344a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit de11dcfb03729f399ffdcea1f8135dc0973c0e2b Author: Regina Obe Date: Mon Sep 7 23:27:07 2026 -0400 Flip back to dev mode diff --git a/NEWS b/NEWS index 5443b197a..619549d76 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ -PostGIS 3.7.0rc2 -2026/09/07 +PostGIS 3.7.0 +2026/xx/xx This version requires GEOS 3.10+, PostgreSQL 14-19beta3, Proj 6.1+, and libgmp. To take advantage of all postgis extension features, GEOS 3.15+ is needed. diff --git a/Version.config b/Version.config index 21c93f4c9..2e5a68cb5 100644 --- a/Version.config +++ b/Version.config @@ -5,7 +5,7 @@ POSTGIS_MAJOR_VERSION=3 POSTGIS_MINOR_VERSION=7 -POSTGIS_MICRO_VERSION=0rc2 +POSTGIS_MICRO_VERSION=0dev # Liblwgeom interface versioning, reset to 0:0:0 (cur:age:rev) # when changing POSTGIS_MINOR_VERSION diff --git a/extensions/upgradeable_versions.mk b/extensions/upgradeable_versions.mk index 658a10fa3..c526cf325 100644 --- a/extensions/upgradeable_versions.mk +++ b/extensions/upgradeable_versions.mk @@ -131,4 +131,5 @@ UPGRADEABLE_VERSIONS = \ 3.7.0alpha1 \ 3.7.0beta1 \ 3.7.0beta2 \ - 3.7.0rc1 + 3.7.0rc1 \ + 3.7.0rc2 commit 3b97ea26018f106d6bd0ad050d1431ad3d6a988f Author: Regina Obe Date: Mon Sep 7 23:24:04 2026 -0400 PostGIS 3.7.0rc2 release diff --git a/Version.config b/Version.config index 2e5a68cb5..21c93f4c9 100644 --- a/Version.config +++ b/Version.config @@ -5,7 +5,7 @@ POSTGIS_MAJOR_VERSION=3 POSTGIS_MINOR_VERSION=7 -POSTGIS_MICRO_VERSION=0dev +POSTGIS_MICRO_VERSION=0rc2 # Liblwgeom interface versioning, reset to 0:0:0 (cur:age:rev) # when changing POSTGIS_MINOR_VERSION ----------------------------------------------------------------------- Summary of changes: NEWS | 4 ++-- extensions/upgradeable_versions.mk | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Sep 7 20:51:11 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 20:51:11 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-47-g621f8e0e2 Message-ID: <20260908035112.7C7CE1BB0D0@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 621f8e0e24602361113fe79b0833780398297aff (commit) via c73080f87a4835e1a02f9e0ad5d095da0c310782 (commit) from de11dcfb03729f399ffdcea1f8135dc0973c0e2b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 621f8e0e24602361113fe79b0833780398297aff Author: Regina Obe Date: Tue Sep 8 03:50:31 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.5% (6031 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index e07f18cad..aee632a6e 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -5,13 +5,14 @@ # Yoichi Kayama , 2024. # Weblate , 2025. # Teramoto Ikuhiro , 2025, 2026. +# Regina Obe , 2026. msgid "" msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" "PO-Revision-Date: 2026-09-08 03:51+0000\n" -"Last-Translator: Teramoto Ikuhiro \n" +"Last-Translator: Regina Obe \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -6068,7 +6069,7 @@ msgid "" "--without-json." msgstr "" "JSON-C????ST_GeomFromGeoJson ??? GeoJSON ????????????JSON-" -"C ? link xlink:href=\"https://github.com/json-c/json-c/releases\">https://" +"C ? https://" "github.com/json-c/json-c/releases/ ?????????????" "???????????????????????configure ????????" "???????????????????? --without-json ?" commit c73080f87a4835e1a02f9e0ad5d095da0c310782 Author: Teramoto Ikuhiro Date: Tue Sep 8 03:04:22 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.5% (6031 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 9af9403bb..e07f18cad 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-08 02:39+0000\n" +"PO-Revision-Date: 2026-09-08 03:51+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -45525,6 +45525,10 @@ msgid "" "link>, Use point-in-polygon predicate fast paths for point-only " "GeometryCollections, including ST_Disjoint (Darafei Praliaskouski)" msgstr "" +"#4749" +", ?????????????????????????????????????" +"??????????????????ST_Disjoint ?????(Darafei " +"Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45541,6 +45545,9 @@ msgid "" "link>, Allow ST_OrderingEquals joins to use hash and merge join plans " "(Darafei Praliaskouski)" msgstr "" +"GH-875, ST_OrderingEquals ??????????????????????????" +"????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45549,6 +45556,9 @@ msgid "" "link>, [raster] Support curved geometry inputs in ST_AsRaster (Darafei " "Praliaskouski)" msgstr "" +"#1168" +", [raster] ST_AsRaster ?????????????????????? (Darafei " +"Praliaskouski)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Mon Sep 7 22:39:17 2026 From: git at osgeo.org (git at osgeo.org) Date: Mon, 7 Sep 2026 22:39:17 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-48-g927afb703 Message-ID: <20260908053917.E53EF1BCDD8@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 927afb703ea802eb6fc29a33664973a5a5a98229 (commit) from 621f8e0e24602361113fe79b0833780398297aff (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 927afb703ea802eb6fc29a33664973a5a5a98229 Author: Teramoto Ikuhiro Date: Tue Sep 8 05:37:51 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.6% (6040 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index aee632a6e..83ebb2e12 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-08 03:51+0000\n" -"Last-Translator: Regina Obe \n" +"PO-Revision-Date: 2026-09-08 05:39+0000\n" +"Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -45568,6 +45568,9 @@ msgid "" "link>, ST_AsX3D outputs NURBSCURVE as X3D NurbsCurve and linearizes other " "curve geometries (Darafei Praliaskouski)" msgstr "" +"#1416" +", ST_AsX3D ? NURBSCURVE ? X3D NurbsCurve ?????????????????" +"????????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45576,6 +45579,9 @@ msgid "" "link>, ST_AsX3D outputs valid coordinate nodes for 2D multi-geometries and " "GeometryCollections (Darafei Praliaskouski)" msgstr "" +"#3705" +", ST_AsX3D ? 2???????????????????????????????" +"? Coordinate ????????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45584,6 +45590,9 @@ msgid "" "484\">GT-484, Use column-level SELECT privileges for metadata views " "(Arthur Bazin)" msgstr "" +"GT-" +"484, ???????????????? SELECT ????? (Arthur Bazin " +"??)" #. Tag: para #, no-c-format @@ -45612,11 +45621,33 @@ msgid "" "GT-584, Numerous doc enhancements (Darafei Praliaskouski)" msgstr "" +"#1408" +", #2386, " +"#2557, #2805, #2898, #3743, #4323, #4332, " +"#4385" +", #5109, " +"#5532, #5593, #5638, #5645, #5950, #6022, " +"#6082" +", GH-1161, GT-584, ???????????? (Darafei Praliaskouski ??)" #. Tag: title #, no-c-format msgid "Bug Fixes" -msgstr "" +msgstr "????" #. Tag: para #, no-c-format @@ -45633,6 +45664,9 @@ msgid "" "link>, Reject empty geometry type modifiers without an out-of-bounds read " "(Egor Ivkov)" msgstr "" +"#6118" +", ??????????????????????????????? (Egor Ivkov " +"??)" #. Tag: para #, no-c-format @@ -45640,6 +45674,8 @@ msgid "" "Fix WKB and TWKB parser resource exhaustion on malformed input (Darafei " "Praliaskouski)" msgstr "" +"WKB ? TWKB ??????????????????????????? (Darafei " +"Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45648,6 +45684,9 @@ msgid "" "link>, Avoid stale relation lookups in geometry_columns after topology " "objects are dropped (Darafei Praliaskouski)" msgstr "" +"#6038" +", ??????????????????? geometry_columns ?????????" +"?????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45656,6 +45695,9 @@ msgid "" "link>, Improve error detail for repeated upgrades after an incomplete " "deprecated-function cleanup (Darafei Praliaskouski)" msgstr "" +"#5487" +", ?????????????????????????????????????" +"????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 48 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 00:39:21 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 00:39:21 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-49-gdf51a6280 Message-ID: <20260908073922.476ED1BF8D3@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via df51a62808292e9917409d2019ccd12ee700681b (commit) from 927afb703ea802eb6fc29a33664973a5a5a98229 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit df51a62808292e9917409d2019ccd12ee700681b Author: Teramoto Ikuhiro Date: Tue Sep 8 06:19:53 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.7% (6044 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 83ebb2e12..9d984de3b 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-08 05:39+0000\n" +"PO-Revision-Date: 2026-09-08 07:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -45714,6 +45714,9 @@ msgid "" "link>, [topology] Avoid MinGW format warnings when logging topology ids " "(Darafei Praliaskouski)" msgstr "" +"#5904" +", [topology] ????? ID ????????? MinGW ????????????" +"??????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45738,6 +45741,9 @@ msgid "" "link>, Avoid size_t formats in liblwgeom logging/error wrappers for MinGW " "builds (Darafei Praliaskouski)" msgstr "" +"#6003" +", MinGW ??????? liblwgeom ???/????????? size_t ?" +"????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45786,6 +45792,9 @@ msgid "" "link>, geometry_columns handles NOT VALID SRID checks without errors " "(Darafei Praliaskouski)" msgstr "" +"#4828" +", geometry_columns ??????? SRID?????????????????? " +"(Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45794,6 +45803,9 @@ msgid "" "link>, [raster] ST_Clip no longer crashes when clipping sparse band " "selections (Darafei Praliaskouski)" msgstr "" +"#6048" +", [raster] ????????????????? ST_Clip ???????????" +"??? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 10:15:39 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 10:15:39 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-51-gfb915a676 Message-ID: <20260908171540.495161C7DD5@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via fb915a6760c84984f86a671a306ee83fd38f413b (commit) via a9634c0c735ae492efb3099d0cff0d26d0ce74be (commit) from df51a62808292e9917409d2019ccd12ee700681b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit fb915a6760c84984f86a671a306ee83fd38f413b Merge: df51a6280 a9634c0c7 Author: Darafei Praliaskouski Date: Tue Sep 8 10:15:37 2026 -0700 Merge pull request '[raster] Enforce postgis.enable_outdb_rasters' (!779) from Komzpa/postgis:codex/raster-outdb-guc-20260907 into master Bind postgis.enable_outdb_rasters to the core offline-band guard used by metadata and pixel reads. The documented default off setting now takes effect after upgrade, while explicitly enabling out-db rasters preserves those reads. In-database rasters are unaffected. Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/779 commit a9634c0c735ae492efb3099d0cff0d26d0ce74be Author: Darafei Praliaskouski Date: Mon Sep 7 23:25:33 2026 +0400 [raster] Enforce postgis.enable_outdb_rasters diff --git a/NEWS b/NEWS index 069a05a2d..db1d0173f 100644 --- a/NEWS +++ b/NEWS @@ -132,6 +132,10 @@ To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed * Bug Fixes * + - [raster] Make postgis.enable_outdb_rasters=off enforce offline-band + metadata and pixel-read restrictions after upgrade + (reported by Sarath Kumar, IITM Pravartak Security Team; + fixed by Darafei Praliaskouski) - GH-1175, Guard missing operands before reading node tags in spatial selectivity estimation (Maksim Korotkov) diff --git a/raster/rt_pg/rtpostgis.c b/raster/rt_pg/rtpostgis.c index 4c8bd1a3f..fba4adfaf 100644 --- a/raster/rt_pg/rtpostgis.c +++ b/raster/rt_pg/rtpostgis.c @@ -481,7 +481,8 @@ rt_pg_vsi_check_options(char **newval, void **extra, GucSource source) static char *gdal_datapath = NULL; static char *gdal_vsi_options = NULL; static char *gdal_enabled_drivers = NULL; -static bool enable_outdb_rasters = false; +/* Defined in rt_band.c and used by the offline-band access guards. */ +extern bool enable_outdb_rasters; static bool gdal_cpl_debug = false; /* ---------------------------------------------------------------- */ diff --git a/raster/test/regress/rt_outdb_guc.sql b/raster/test/regress/rt_outdb_guc.sql new file mode 100644 index 000000000..1547c7d65 --- /dev/null +++ b/raster/test/regress/rt_outdb_guc.sql @@ -0,0 +1,88 @@ +CREATE FUNCTION outdb_guc_can_read_metadata(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_BandFileSize(rast, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +CREATE FUNCTION outdb_guc_can_read_pixel(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_Value(rast, 1, 1, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + PERFORM postgis_raster_lib_version(); +END; +$$; + +CREATE ROLE outdb_guc_regression_guest; +GRANT SELECT ON raster_outdb_template TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) TO outdb_guc_regression_guest; + +SET postgis.gdal_enabled_drivers = 'GTiff'; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'off_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_indb_pixel', ( + ST_Value( + ST_AddBand( + ST_MakeEmptyRaster(1, 1, 0, 0, 1, -1, 0, 0, 0), + 1, '8BUI', 7, 0 + ), + 1, 1, 1 + ) = 7 +); + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +SET ROLE outdb_guc_regression_guest; +SELECT 'on_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'on_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'reset_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'reset_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +BEGIN; +SET postgis.enable_outdb_rasters = true; +SHOW postgis.enable_outdb_rasters; +ROLLBACK; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'rollback_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'rollback_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +REVOKE SELECT ON raster_outdb_template FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) FROM outdb_guc_regression_guest; +DROP FUNCTION outdb_guc_can_read_metadata(raster); +DROP FUNCTION outdb_guc_can_read_pixel(raster); +DROP ROLE outdb_guc_regression_guest; diff --git a/raster/test/regress/rt_outdb_guc_expected b/raster/test/regress/rt_outdb_guc_expected new file mode 100644 index 000000000..dac34286f --- /dev/null +++ b/raster/test/regress/rt_outdb_guc_expected @@ -0,0 +1,13 @@ +off +off_metadata|f +off_pixel|f +off_indb_pixel|t +on_metadata|t +on_pixel|t +off +reset_metadata|f +reset_pixel|f +on +off +rollback_metadata|f +rollback_pixel|f diff --git a/raster/test/regress/tests.mk.in b/raster/test/regress/tests.mk.in index 59fa11eab..eb614dcf7 100644 --- a/raster/test/regress/tests.mk.in +++ b/raster/test/regress/tests.mk.in @@ -22,7 +22,8 @@ override RUNTESTFLAGS_INTERNAL := \ RASTER_TEST_FIRST = \ $(top_srcdir)/raster/test/regress/check_gdal \ - $(top_srcdir)/raster/test/regress/loader/load_outdb + $(top_srcdir)/raster/test/regress/loader/load_outdb \ + $(top_srcdir)/raster/test/regress/rt_outdb_guc RASTER_TEST_LAST = \ $(top_srcdir)/raster/test/regress/clean ----------------------------------------------------------------------- Summary of changes: NEWS | 4 ++ raster/rt_pg/rtpostgis.c | 3 +- raster/test/regress/rt_outdb_guc.sql | 88 +++++++++++++++++++++++++++++++ raster/test/regress/rt_outdb_guc_expected | 13 +++++ raster/test/regress/tests.mk.in | 3 +- 5 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 raster/test/regress/rt_outdb_guc.sql create mode 100644 raster/test/regress/rt_outdb_guc_expected hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 10:15:53 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 10:15:53 -0700 (PDT) Subject: [SCM] PostGIS branch stable-3.3 updated. 3.3.10-138-g4bfae5b54 Message-ID: <20260908171553.B462D1C7F5A@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, stable-3.3 has been updated via 4bfae5b54cea43313c63e52252edb879be870ece (commit) via ae8a57ac326ffb8efd8387e180933ea25812cbb3 (commit) via 904393f8c84fe043b6230f7008911420ee70867c (commit) via 46661b14dee6d32ab801b9f88df78823de56dbb7 (commit) from 6f7bf676d71179c4b3b3eab9cf492ab7a7380300 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 4bfae5b54cea43313c63e52252edb879be870ece Merge: 6f7bf676d ae8a57ac3 Author: Darafei Praliaskouski Date: Tue Sep 8 10:15:52 2026 -0700 Merge pull request '[3.3] [raster] Enforce postgis.enable_outdb_rasters' (!785) from Komzpa/postgis:codex/backpatch-outdb-stable-33-20260907 into stable-3.3 Bind postgis.enable_outdb_rasters to the core offline-band guard used by metadata and pixel reads. The documented default off setting now takes effect, while explicitly enabling out-db rasters preserves those reads. In-database rasters are unaffected. Also backport the existing GDAL build fix to use PostgreSQL's Min macro. References https://gitea.osgeo.org/postgis/postgis/pulls/779 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/785 commit ae8a57ac326ffb8efd8387e180933ea25812cbb3 Author: Paul Ramsey Date: Tue Mar 17 13:14:45 2026 -0700 Fix CI failure in garden Cherry-picked-from: ab0fa8f3f46eda481a0195fd786932a0fba0e847 diff --git a/raster/rt_pg/rtpg_geometry.c b/raster/rt_pg/rtpg_geometry.c index a4059a8bc..5bfd62ad9 100644 --- a/raster/rt_pg/rtpg_geometry.c +++ b/raster/rt_pg/rtpg_geometry.c @@ -1572,9 +1572,8 @@ Datum RASTER_asRaster(PG_FUNCTION_ARGS) srs = NULL; /* determine number of bands */ - /* MIN macro is from GDAL's cpl_port.h */ - num_bands = MIN(pixtypes_len, values_len); - num_bands = MIN(num_bands, nodatavals_len); + num_bands = Min(pixtypes_len, values_len); + num_bands = Min(num_bands, nodatavals_len); POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: pixtypes_len = %d", pixtypes_len); POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: values_len = %d", values_len); POSTGIS_RT_DEBUGF(3, "RASTER_asRaster: nodatavals_len = %d", nodatavals_len); commit 904393f8c84fe043b6230f7008911420ee70867c Author: Darafei Praliaskouski Date: Tue Sep 8 01:24:28 2026 +0400 NEWS: record GT-779 out-db GUC enforcement diff --git a/NEWS b/NEWS index 37c95baaa..cce344bc7 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,10 @@ PostGIS 3.3.11 * Bug Fixes and Enhancements * + - GT-779, [raster] Make postgis.enable_outdb_rasters=off enforce offline-band + metadata and pixel-read restrictions after upgrade + (reported by Sarath Kumar, IITM Pravartak Security Team; + fixed by Darafei Praliaskouski) - GT-675, Preserve TRIANGLE children while normalizing malformed TINs (Darafei Praliaskouski) - #6038, Avoid stale geometry_columns relation lookups after relations are commit 46661b14dee6d32ab801b9f88df78823de56dbb7 Author: Darafei Praliaskouski Date: Mon Sep 7 23:25:33 2026 +0400 [raster] Enforce postgis.enable_outdb_rasters Cherry-picked-from: a9634c0c735ae492efb3099d0cff0d26d0ce74be diff --git a/raster/rt_pg/rtpostgis.c b/raster/rt_pg/rtpostgis.c index 2fe1d18bf..ba028281d 100644 --- a/raster/rt_pg/rtpostgis.c +++ b/raster/rt_pg/rtpostgis.c @@ -454,7 +454,8 @@ static char *gdal_datapath = NULL; static char *gdal_vsi_options = NULL; static char *gdal_enabled_drivers = NULL; -static bool enable_outdb_rasters = false; +/* Defined in rt_band.c and used by the offline-band access guards. */ +extern bool enable_outdb_rasters; /* ---------------------------------------------------------------- */ /* Useful variables */ @@ -823,4 +824,3 @@ _PG_fini(void) { } - diff --git a/raster/test/regress/rt_outdb_guc.sql b/raster/test/regress/rt_outdb_guc.sql new file mode 100644 index 000000000..1547c7d65 --- /dev/null +++ b/raster/test/regress/rt_outdb_guc.sql @@ -0,0 +1,88 @@ +CREATE FUNCTION outdb_guc_can_read_metadata(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_BandFileSize(rast, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +CREATE FUNCTION outdb_guc_can_read_pixel(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_Value(rast, 1, 1, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + PERFORM postgis_raster_lib_version(); +END; +$$; + +CREATE ROLE outdb_guc_regression_guest; +GRANT SELECT ON raster_outdb_template TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) TO outdb_guc_regression_guest; + +SET postgis.gdal_enabled_drivers = 'GTiff'; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'off_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_indb_pixel', ( + ST_Value( + ST_AddBand( + ST_MakeEmptyRaster(1, 1, 0, 0, 1, -1, 0, 0, 0), + 1, '8BUI', 7, 0 + ), + 1, 1, 1 + ) = 7 +); + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +SET ROLE outdb_guc_regression_guest; +SELECT 'on_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'on_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'reset_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'reset_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +BEGIN; +SET postgis.enable_outdb_rasters = true; +SHOW postgis.enable_outdb_rasters; +ROLLBACK; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'rollback_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'rollback_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +REVOKE SELECT ON raster_outdb_template FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) FROM outdb_guc_regression_guest; +DROP FUNCTION outdb_guc_can_read_metadata(raster); +DROP FUNCTION outdb_guc_can_read_pixel(raster); +DROP ROLE outdb_guc_regression_guest; diff --git a/raster/test/regress/rt_outdb_guc_expected b/raster/test/regress/rt_outdb_guc_expected new file mode 100644 index 000000000..dac34286f --- /dev/null +++ b/raster/test/regress/rt_outdb_guc_expected @@ -0,0 +1,13 @@ +off +off_metadata|f +off_pixel|f +off_indb_pixel|t +on_metadata|t +on_pixel|t +off +reset_metadata|f +reset_pixel|f +on +off +rollback_metadata|f +rollback_pixel|f diff --git a/raster/test/regress/tests.mk b/raster/test/regress/tests.mk index 00918e134..71bd28f1e 100644 --- a/raster/test/regress/tests.mk +++ b/raster/test/regress/tests.mk @@ -19,7 +19,8 @@ override RUNTESTFLAGS_INTERNAL := \ RASTER_TEST_FIRST = \ $(top_srcdir)/raster/test/regress/check_gdal \ - $(top_srcdir)/raster/test/regress/loader/load_outdb + $(top_srcdir)/raster/test/regress/loader/load_outdb \ + $(top_srcdir)/raster/test/regress/rt_outdb_guc RASTER_TEST_LAST = \ $(top_srcdir)/raster/test/regress/clean ----------------------------------------------------------------------- Summary of changes: NEWS | 4 ++ raster/rt_pg/rtpg_geometry.c | 5 +- raster/rt_pg/rtpostgis.c | 4 +- raster/test/regress/rt_outdb_guc.sql | 88 +++++++++++++++++++++++++++++++ raster/test/regress/rt_outdb_guc_expected | 13 +++++ raster/test/regress/tests.mk | 3 +- 6 files changed, 111 insertions(+), 6 deletions(-) create mode 100644 raster/test/regress/rt_outdb_guc.sql create mode 100644 raster/test/regress/rt_outdb_guc_expected hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 10:15:58 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 10:15:58 -0700 (PDT) Subject: [SCM] PostGIS branch stable-3.4 updated. 3.4.6-144-gc09db5548 Message-ID: <20260908171558.E2A071C7F61@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, stable-3.4 has been updated via c09db5548575f10591bfd228c427f68f819ca2d0 (commit) via 25fa1fe590be3a212f8cbadf0183f574c85c20eb (commit) via 17e25ed29ee9e04c2952e23c2140033f28c10035 (commit) from 58adc259c3c9c819a890d0a7a93ab4c582d9c70b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c09db5548575f10591bfd228c427f68f819ca2d0 Merge: 58adc259c 25fa1fe59 Author: Darafei Praliaskouski Date: Tue Sep 8 10:15:57 2026 -0700 Merge pull request '[3.4] [raster] Enforce postgis.enable_outdb_rasters' (!786) from Komzpa/postgis:codex/backpatch-outdb-stable-34-20260907 into stable-3.4 Bind postgis.enable_outdb_rasters to the core offline-band guard used by metadata and pixel reads. The documented default off setting now takes effect, while explicitly enabling out-db rasters preserves those reads. In-database rasters are unaffected. References https://gitea.osgeo.org/postgis/postgis/pulls/779 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/786 commit 25fa1fe590be3a212f8cbadf0183f574c85c20eb Author: Darafei Praliaskouski Date: Tue Sep 8 01:24:28 2026 +0400 NEWS: record GT-779 out-db GUC enforcement diff --git a/NEWS b/NEWS index 9a8191ad3..cae28b31c 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,10 @@ PostGIS 3.4.7 * Bug Fixes * + - GT-779, [raster] Make postgis.enable_outdb_rasters=off enforce offline-band + metadata and pixel-read restrictions after upgrade + (reported by Sarath Kumar, IITM Pravartak Security Team; + fixed by Darafei Praliaskouski) - GT-675, Preserve TRIANGLE children while normalizing malformed TINs (Darafei Praliaskouski) - #6038, Avoid stale geometry_columns relation lookups after relations are commit 17e25ed29ee9e04c2952e23c2140033f28c10035 Author: Darafei Praliaskouski Date: Mon Sep 7 23:25:33 2026 +0400 [raster] Enforce postgis.enable_outdb_rasters Cherry-picked-from: a9634c0c735ae492efb3099d0cff0d26d0ce74be diff --git a/raster/rt_pg/rtpostgis.c b/raster/rt_pg/rtpostgis.c index 44af11c79..f2e89c071 100644 --- a/raster/rt_pg/rtpostgis.c +++ b/raster/rt_pg/rtpostgis.c @@ -461,7 +461,8 @@ rt_pg_vsi_check_options(char **newval, void **extra, GucSource source) static char *gdal_datapath = NULL; static char *gdal_vsi_options = NULL; static char *gdal_enabled_drivers = NULL; -static bool enable_outdb_rasters = false; +/* Defined in rt_band.c and used by the offline-band access guards. */ +extern bool enable_outdb_rasters; /* ---------------------------------------------------------------- */ /* Useful variables */ @@ -830,4 +831,3 @@ _PG_fini(void) { } - diff --git a/raster/test/regress/rt_outdb_guc.sql b/raster/test/regress/rt_outdb_guc.sql new file mode 100644 index 000000000..1547c7d65 --- /dev/null +++ b/raster/test/regress/rt_outdb_guc.sql @@ -0,0 +1,88 @@ +CREATE FUNCTION outdb_guc_can_read_metadata(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_BandFileSize(rast, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +CREATE FUNCTION outdb_guc_can_read_pixel(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_Value(rast, 1, 1, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + PERFORM postgis_raster_lib_version(); +END; +$$; + +CREATE ROLE outdb_guc_regression_guest; +GRANT SELECT ON raster_outdb_template TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) TO outdb_guc_regression_guest; + +SET postgis.gdal_enabled_drivers = 'GTiff'; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'off_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_indb_pixel', ( + ST_Value( + ST_AddBand( + ST_MakeEmptyRaster(1, 1, 0, 0, 1, -1, 0, 0, 0), + 1, '8BUI', 7, 0 + ), + 1, 1, 1 + ) = 7 +); + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +SET ROLE outdb_guc_regression_guest; +SELECT 'on_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'on_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'reset_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'reset_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +BEGIN; +SET postgis.enable_outdb_rasters = true; +SHOW postgis.enable_outdb_rasters; +ROLLBACK; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'rollback_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'rollback_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +REVOKE SELECT ON raster_outdb_template FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) FROM outdb_guc_regression_guest; +DROP FUNCTION outdb_guc_can_read_metadata(raster); +DROP FUNCTION outdb_guc_can_read_pixel(raster); +DROP ROLE outdb_guc_regression_guest; diff --git a/raster/test/regress/rt_outdb_guc_expected b/raster/test/regress/rt_outdb_guc_expected new file mode 100644 index 000000000..dac34286f --- /dev/null +++ b/raster/test/regress/rt_outdb_guc_expected @@ -0,0 +1,13 @@ +off +off_metadata|f +off_pixel|f +off_indb_pixel|t +on_metadata|t +on_pixel|t +off +reset_metadata|f +reset_pixel|f +on +off +rollback_metadata|f +rollback_pixel|f diff --git a/raster/test/regress/tests.mk b/raster/test/regress/tests.mk index 00918e134..71bd28f1e 100644 --- a/raster/test/regress/tests.mk +++ b/raster/test/regress/tests.mk @@ -19,7 +19,8 @@ override RUNTESTFLAGS_INTERNAL := \ RASTER_TEST_FIRST = \ $(top_srcdir)/raster/test/regress/check_gdal \ - $(top_srcdir)/raster/test/regress/loader/load_outdb + $(top_srcdir)/raster/test/regress/loader/load_outdb \ + $(top_srcdir)/raster/test/regress/rt_outdb_guc RASTER_TEST_LAST = \ $(top_srcdir)/raster/test/regress/clean ----------------------------------------------------------------------- Summary of changes: NEWS | 4 ++ raster/rt_pg/rtpostgis.c | 4 +- raster/test/regress/rt_outdb_guc.sql | 88 +++++++++++++++++++++++++++++++ raster/test/regress/rt_outdb_guc_expected | 13 +++++ raster/test/regress/tests.mk | 3 +- 5 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 raster/test/regress/rt_outdb_guc.sql create mode 100644 raster/test/regress/rt_outdb_guc_expected hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 10:16:05 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 10:16:05 -0700 (PDT) Subject: [SCM] PostGIS branch stable-3.5 updated. 3.5.7-144-g26d270d4b Message-ID: <20260908171605.CD2721C8648@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, stable-3.5 has been updated via 26d270d4b9436ce91d032b050a33c9627ec0fe3f (commit) via 673edfbce634936ee826ad74f3c6116b228066e2 (commit) via 60a296cc85caa89e0e6335bfa8e58ca80300a72a (commit) from f0cdc854901ea6f02ec81dcb751f1355e3739af7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 26d270d4b9436ce91d032b050a33c9627ec0fe3f Merge: f0cdc8549 673edfbce Author: Darafei Praliaskouski Date: Tue Sep 8 10:16:04 2026 -0700 Merge pull request '[3.5] [raster] Enforce postgis.enable_outdb_rasters' (!787) from Komzpa/postgis:codex/backpatch-outdb-stable-35-20260907 into stable-3.5 Bind postgis.enable_outdb_rasters to the core offline-band guard used by metadata and pixel reads. The documented default off setting now takes effect, while explicitly enabling out-db rasters preserves those reads. In-database rasters are unaffected. References https://gitea.osgeo.org/postgis/postgis/pulls/779 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/787 commit 673edfbce634936ee826ad74f3c6116b228066e2 Author: Darafei Praliaskouski Date: Tue Sep 8 01:24:28 2026 +0400 NEWS: record GT-779 out-db GUC enforcement diff --git a/NEWS b/NEWS index 8cd60959a..b044ef9be 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,10 @@ PostGIS 3.5.8dev * Bug Fixes * + - GT-779, [raster] Make postgis.enable_outdb_rasters=off enforce offline-band + metadata and pixel-read restrictions after upgrade + (reported by Sarath Kumar, IITM Pravartak Security Team; + fixed by Darafei Praliaskouski) - #6120, Improve topology robustness by restoring edge collapse handling during building (Sandro Santilli) - GT-675, Preserve TRIANGLE children while normalizing malformed TINs commit 60a296cc85caa89e0e6335bfa8e58ca80300a72a Author: Darafei Praliaskouski Date: Mon Sep 7 23:25:33 2026 +0400 [raster] Enforce postgis.enable_outdb_rasters Cherry-picked-from: a9634c0c735ae492efb3099d0cff0d26d0ce74be diff --git a/raster/rt_pg/rtpostgis.c b/raster/rt_pg/rtpostgis.c index 0ec8b1d6c..bd03b04ef 100644 --- a/raster/rt_pg/rtpostgis.c +++ b/raster/rt_pg/rtpostgis.c @@ -461,7 +461,8 @@ rt_pg_vsi_check_options(char **newval, void **extra, GucSource source) static char *gdal_datapath = NULL; static char *gdal_vsi_options = NULL; static char *gdal_enabled_drivers = NULL; -static bool enable_outdb_rasters = false; +/* Defined in rt_band.c and used by the offline-band access guards. */ +extern bool enable_outdb_rasters; /* ---------------------------------------------------------------- */ /* Useful variables */ @@ -830,4 +831,3 @@ _PG_fini(void) { } - diff --git a/raster/test/regress/rt_outdb_guc.sql b/raster/test/regress/rt_outdb_guc.sql new file mode 100644 index 000000000..1547c7d65 --- /dev/null +++ b/raster/test/regress/rt_outdb_guc.sql @@ -0,0 +1,88 @@ +CREATE FUNCTION outdb_guc_can_read_metadata(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_BandFileSize(rast, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +CREATE FUNCTION outdb_guc_can_read_pixel(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_Value(rast, 1, 1, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + PERFORM postgis_raster_lib_version(); +END; +$$; + +CREATE ROLE outdb_guc_regression_guest; +GRANT SELECT ON raster_outdb_template TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) TO outdb_guc_regression_guest; + +SET postgis.gdal_enabled_drivers = 'GTiff'; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'off_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_indb_pixel', ( + ST_Value( + ST_AddBand( + ST_MakeEmptyRaster(1, 1, 0, 0, 1, -1, 0, 0, 0), + 1, '8BUI', 7, 0 + ), + 1, 1, 1 + ) = 7 +); + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +SET ROLE outdb_guc_regression_guest; +SELECT 'on_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'on_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'reset_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'reset_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +BEGIN; +SET postgis.enable_outdb_rasters = true; +SHOW postgis.enable_outdb_rasters; +ROLLBACK; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'rollback_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'rollback_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +REVOKE SELECT ON raster_outdb_template FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) FROM outdb_guc_regression_guest; +DROP FUNCTION outdb_guc_can_read_metadata(raster); +DROP FUNCTION outdb_guc_can_read_pixel(raster); +DROP ROLE outdb_guc_regression_guest; diff --git a/raster/test/regress/rt_outdb_guc_expected b/raster/test/regress/rt_outdb_guc_expected new file mode 100644 index 000000000..dac34286f --- /dev/null +++ b/raster/test/regress/rt_outdb_guc_expected @@ -0,0 +1,13 @@ +off +off_metadata|f +off_pixel|f +off_indb_pixel|t +on_metadata|t +on_pixel|t +off +reset_metadata|f +reset_pixel|f +on +off +rollback_metadata|f +rollback_pixel|f diff --git a/raster/test/regress/tests.mk b/raster/test/regress/tests.mk index 00918e134..71bd28f1e 100644 --- a/raster/test/regress/tests.mk +++ b/raster/test/regress/tests.mk @@ -19,7 +19,8 @@ override RUNTESTFLAGS_INTERNAL := \ RASTER_TEST_FIRST = \ $(top_srcdir)/raster/test/regress/check_gdal \ - $(top_srcdir)/raster/test/regress/loader/load_outdb + $(top_srcdir)/raster/test/regress/loader/load_outdb \ + $(top_srcdir)/raster/test/regress/rt_outdb_guc RASTER_TEST_LAST = \ $(top_srcdir)/raster/test/regress/clean ----------------------------------------------------------------------- Summary of changes: NEWS | 4 ++ raster/rt_pg/rtpostgis.c | 4 +- raster/test/regress/rt_outdb_guc.sql | 88 +++++++++++++++++++++++++++++++ raster/test/regress/rt_outdb_guc_expected | 13 +++++ raster/test/regress/tests.mk | 3 +- 5 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 raster/test/regress/rt_outdb_guc.sql create mode 100644 raster/test/regress/rt_outdb_guc_expected hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 10:16:13 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 10:16:13 -0700 (PDT) Subject: [SCM] PostGIS branch stable-3.6 updated. 3.6.4-145-g078722e0b Message-ID: <20260908171614.442ED1C8D02@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, stable-3.6 has been updated via 078722e0b17d6c4d1b5d21531da614cc0b6d193a (commit) via b7a7e3caac85e3c35bb70973371f858a1e9272b7 (commit) via 5cae8626ed12c2acd3b2a706e12a487a6f974974 (commit) from effa73b6fe547c182f66b9f143029a20db4acaf0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 078722e0b17d6c4d1b5d21531da614cc0b6d193a Merge: effa73b6f b7a7e3caa Author: Darafei Praliaskouski Date: Tue Sep 8 10:16:12 2026 -0700 Merge pull request '[3.6] [raster] Enforce postgis.enable_outdb_rasters' (!788) from Komzpa/postgis:codex/backpatch-outdb-stable-36-20260907 into stable-3.6 Bind postgis.enable_outdb_rasters to the core offline-band guard used by metadata and pixel reads. The documented default off setting now takes effect, while explicitly enabling out-db rasters preserves those reads. In-database rasters are unaffected. References https://gitea.osgeo.org/postgis/postgis/pulls/779 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/788 commit b7a7e3caac85e3c35bb70973371f858a1e9272b7 Author: Darafei Praliaskouski Date: Tue Sep 8 01:24:28 2026 +0400 NEWS: record GT-779 out-db GUC enforcement diff --git a/NEWS b/NEWS index 727d61763..ff187ea36 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,10 @@ PostGIS 3.6.5dev * Fixes * +- GT-779, [raster] Make postgis.enable_outdb_rasters=off enforce offline-band + metadata and pixel-read restrictions after upgrade + (reported by Sarath Kumar, IITM Pravartak Security Team; + fixed by Darafei Praliaskouski) - #6120, Improve topology robustness by restoring edge collapse handling during building (Sandro Santilli) - GT-675, Preserve TRIANGLE children while normalizing malformed TINs commit 5cae8626ed12c2acd3b2a706e12a487a6f974974 Author: Darafei Praliaskouski Date: Mon Sep 7 23:25:33 2026 +0400 [raster] Enforce postgis.enable_outdb_rasters Cherry-picked-from: a9634c0c735ae492efb3099d0cff0d26d0ce74be diff --git a/raster/rt_pg/rtpostgis.c b/raster/rt_pg/rtpostgis.c index 228717f36..33e766b17 100644 --- a/raster/rt_pg/rtpostgis.c +++ b/raster/rt_pg/rtpostgis.c @@ -460,7 +460,8 @@ rt_pg_vsi_check_options(char **newval, void **extra, GucSource source) static char *gdal_datapath = NULL; static char *gdal_vsi_options = NULL; static char *gdal_enabled_drivers = NULL; -static bool enable_outdb_rasters = false; +/* Defined in rt_band.c and used by the offline-band access guards. */ +extern bool enable_outdb_rasters; static bool gdal_cpl_debug = false; /* ---------------------------------------------------------------- */ diff --git a/raster/test/regress/rt_outdb_guc.sql b/raster/test/regress/rt_outdb_guc.sql new file mode 100644 index 000000000..1547c7d65 --- /dev/null +++ b/raster/test/regress/rt_outdb_guc.sql @@ -0,0 +1,88 @@ +CREATE FUNCTION outdb_guc_can_read_metadata(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_BandFileSize(rast, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +CREATE FUNCTION outdb_guc_can_read_pixel(rast raster) +RETURNS boolean +AS $$ +BEGIN + PERFORM ST_Value(rast, 1, 1, 1); + RETURN true; +EXCEPTION WHEN OTHERS THEN + RETURN false; +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + PERFORM postgis_raster_lib_version(); +END; +$$; + +CREATE ROLE outdb_guc_regression_guest; +GRANT SELECT ON raster_outdb_template TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) TO outdb_guc_regression_guest; +GRANT EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) TO outdb_guc_regression_guest; + +SET postgis.gdal_enabled_drivers = 'GTiff'; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'off_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'off_indb_pixel', ( + ST_Value( + ST_AddBand( + ST_MakeEmptyRaster(1, 1, 0, 0, 1, -1, 0, 0, 0), + 1, '8BUI', 7, 0 + ), + 1, 1, 1 + ) = 7 +); + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +SET ROLE outdb_guc_regression_guest; +SELECT 'on_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'on_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +RESET postgis.enable_outdb_rasters; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'reset_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'reset_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +BEGIN; +SET postgis.enable_outdb_rasters = true; +SHOW postgis.enable_outdb_rasters; +ROLLBACK; +SHOW postgis.enable_outdb_rasters; +SET ROLE outdb_guc_regression_guest; +SELECT 'rollback_metadata', outdb_guc_can_read_metadata(rast) +FROM raster_outdb_template WHERE rid = 1; +SELECT 'rollback_pixel', outdb_guc_can_read_pixel(rast) +FROM raster_outdb_template WHERE rid = 1; + +RESET ROLE; +SET postgis.enable_outdb_rasters = true; +REVOKE SELECT ON raster_outdb_template FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_metadata(raster) FROM outdb_guc_regression_guest; +REVOKE EXECUTE ON FUNCTION outdb_guc_can_read_pixel(raster) FROM outdb_guc_regression_guest; +DROP FUNCTION outdb_guc_can_read_metadata(raster); +DROP FUNCTION outdb_guc_can_read_pixel(raster); +DROP ROLE outdb_guc_regression_guest; diff --git a/raster/test/regress/rt_outdb_guc_expected b/raster/test/regress/rt_outdb_guc_expected new file mode 100644 index 000000000..dac34286f --- /dev/null +++ b/raster/test/regress/rt_outdb_guc_expected @@ -0,0 +1,13 @@ +off +off_metadata|f +off_pixel|f +off_indb_pixel|t +on_metadata|t +on_pixel|t +off +reset_metadata|f +reset_pixel|f +on +off +rollback_metadata|f +rollback_pixel|f diff --git a/raster/test/regress/tests.mk.in b/raster/test/regress/tests.mk.in index 111be04e7..ab502d67a 100644 --- a/raster/test/regress/tests.mk.in +++ b/raster/test/regress/tests.mk.in @@ -21,7 +21,8 @@ override RUNTESTFLAGS_INTERNAL := \ RASTER_TEST_FIRST = \ $(top_srcdir)/raster/test/regress/check_gdal \ - $(top_srcdir)/raster/test/regress/loader/load_outdb + $(top_srcdir)/raster/test/regress/loader/load_outdb \ + $(top_srcdir)/raster/test/regress/rt_outdb_guc RASTER_TEST_LAST = \ $(top_srcdir)/raster/test/regress/clean ----------------------------------------------------------------------- Summary of changes: NEWS | 4 ++ raster/rt_pg/rtpostgis.c | 3 +- raster/test/regress/rt_outdb_guc.sql | 88 +++++++++++++++++++++++++++++++ raster/test/regress/rt_outdb_guc_expected | 13 +++++ raster/test/regress/tests.mk.in | 3 +- 5 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 raster/test/regress/rt_outdb_guc.sql create mode 100644 raster/test/regress/rt_outdb_guc_expected hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 12:11:02 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 12:11:02 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-53-g204c66827 Message-ID: <20260908191102.6DCBB1CA357@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 204c668278df12f699880e3e34a1c83fb5550b36 (commit) via b775578758b96f4d76d9280da1d142145625078b (commit) from fb915a6760c84984f86a671a306ee83fd38f413b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 204c668278df12f699880e3e34a1c83fb5550b36 Author: Regina Obe Date: Tue Sep 8 15:10:55 2026 -0400 Flip back to dev diff --git a/NEWS b/NEWS index a1449f321..0620786c3 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ -PostGIS 3.7.0rc2 -2026/09/08 +PostGIS 3.7.0 +2026/xx/xx This version requires GEOS 3.10+, PostgreSQL 14-19beta3, Proj 6.1+, and libgmp. To take advantage of all postgis extension features, GEOS 3.15+ is needed. diff --git a/Version.config b/Version.config index 21c93f4c9..2e5a68cb5 100644 --- a/Version.config +++ b/Version.config @@ -5,7 +5,7 @@ POSTGIS_MAJOR_VERSION=3 POSTGIS_MINOR_VERSION=7 -POSTGIS_MICRO_VERSION=0rc2 +POSTGIS_MICRO_VERSION=0dev # Liblwgeom interface versioning, reset to 0:0:0 (cur:age:rev) # when changing POSTGIS_MINOR_VERSION diff --git a/extensions/upgradeable_versions.mk b/extensions/upgradeable_versions.mk index 658a10fa3..c526cf325 100644 --- a/extensions/upgradeable_versions.mk +++ b/extensions/upgradeable_versions.mk @@ -131,4 +131,5 @@ UPGRADEABLE_VERSIONS = \ 3.7.0alpha1 \ 3.7.0beta1 \ 3.7.0beta2 \ - 3.7.0rc1 + 3.7.0rc1 \ + 3.7.0rc2 commit b775578758b96f4d76d9280da1d142145625078b Author: Regina Obe Date: Tue Sep 8 11:44:24 2026 -0400 PostGIS 3.7.0rc2 diff --git a/NEWS b/NEWS index 0620786c3..a1449f321 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ -PostGIS 3.7.0 -2026/xx/xx +PostGIS 3.7.0rc2 +2026/09/08 This version requires GEOS 3.10+, PostgreSQL 14-19beta3, Proj 6.1+, and libgmp. To take advantage of all postgis extension features, GEOS 3.15+ is needed. diff --git a/Version.config b/Version.config index 2e5a68cb5..21c93f4c9 100644 --- a/Version.config +++ b/Version.config @@ -5,7 +5,7 @@ POSTGIS_MAJOR_VERSION=3 POSTGIS_MINOR_VERSION=7 -POSTGIS_MICRO_VERSION=0dev +POSTGIS_MICRO_VERSION=0rc2 # Liblwgeom interface versioning, reset to 0:0:0 (cur:age:rev) # when changing POSTGIS_MINOR_VERSION diff --git a/extensions/upgradeable_versions.mk b/extensions/upgradeable_versions.mk index c526cf325..658a10fa3 100644 --- a/extensions/upgradeable_versions.mk +++ b/extensions/upgradeable_versions.mk @@ -131,5 +131,4 @@ UPGRADEABLE_VERSIONS = \ 3.7.0alpha1 \ 3.7.0beta1 \ 3.7.0beta2 \ - 3.7.0rc1 \ - 3.7.0rc2 + 3.7.0rc1 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 14:20:49 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 14:20:49 -0700 (PDT) Subject: [SCM] postgis.net branch website updated. clarity-final-262-gd1903af Message-ID: <20260908212052.01BC21CBEDB@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "postgis.net". The branch, website has been updated via d1903af7a756a548341b06299c25a7d885cd071c (commit) via 1cdf8bfb81a7f03919330464a20c00ea546d215e (commit) from 7abd4af2bb5b2f3044a504c32f7061bcff01b340 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d1903af7a756a548341b06299c25a7d885cd071c Author: Regina Obe Date: Tue Sep 8 17:20:37 2026 -0400 Announce PostGIS Day 2026 diff --git a/content/community/events/2026-postgis-day/index.md b/content/community/events/2026-postgis-day/index.md new file mode 100644 index 0000000..3110e25 --- /dev/null +++ b/content/community/events/2026-postgis-day/index.md @@ -0,0 +1,25 @@ +--- +title: "PostGIS Day 2026" +date: "2026-09-08" +eventDates: "2026-11-19" +expiryDate: "2026-11-22" +tags: ["PostGIS"] +eventLink: "https://www.snowflake.com/en/postgis-day/" +location: "Online" +image: "postgis-day.jpg" +geekdocHidden: true +--- + +[PostGIS Day 2026](https://www.snowflake.com/en/postgis-day/) is an opportunity for developers, users, and enthusiasts to come together to share knowledge, use cases, and the latest developments related to this spatial database technology. The online event is focused on the myriad ways in which PostGIS supports geographic information system (GIS) capabilities within PostgreSQL. PostGIS Day is observed the **day after** [GIS Day](https://gisday.com) and the day after GIS day in 2026 is [November 19th, 2026](https://www.snowflake.com/en/postgis-day/). + + + +## What to Expect + +Have a great story to tell about how you use PostGIS? We are looking for papers in a variety of use cases to represent the breadth and sophistication of PostGIS. Talk slots are 30 minutes long and talks generally last 20-25 minutes with time for transition and questions. + +![](postgis-day-m.jpg) + +Talks can be given live or pre-recorded. Talk slots can be timed based on your timezone. Presenters should expect to answer questions live and via chat following their presentation. Talks are recorded and posted to our Youtube Channel. Look at [PostGIS Day 2025 Videos](https://www.youtube.com/playlist?list=PLavJpcg8cl1EkQWoCbczsOjFTe-SHg_8m) to get a flavor of what to expect. Speakers can opt out of video posting. + + diff --git a/content/community/events/2026-postgis-day/postgis-day-m.jpg b/content/community/events/2026-postgis-day/postgis-day-m.jpg new file mode 100644 index 0000000..f2dc587 Binary files /dev/null and b/content/community/events/2026-postgis-day/postgis-day-m.jpg differ diff --git a/content/community/events/2026-postgis-day/postgis-day.jpg b/content/community/events/2026-postgis-day/postgis-day.jpg new file mode 100644 index 0000000..10f5544 Binary files /dev/null and b/content/community/events/2026-postgis-day/postgis-day.jpg differ diff --git a/content/community/events/2026-postgis-day/postgis-day.png b/content/community/events/2026-postgis-day/postgis-day.png new file mode 100644 index 0000000..aecef4d Binary files /dev/null and b/content/community/events/2026-postgis-day/postgis-day.png differ commit 1cdf8bfb81a7f03919330464a20c00ea546d215e Author: Regina Obe Date: Tue Sep 8 17:12:34 2026 -0400 Release postgis 3.7.0rc2 diff --git a/config.toml b/config.toml index 37368cf..2b8d021 100644 --- a/config.toml +++ b/config.toml @@ -169,7 +169,7 @@ enableRobotsTXT = true [params.postgis.releases.dev] minor = "3.7" dev = "3.7.0dev" - tag = "3.7.0rc1" + tag = "3.7.0rc2" is_dev = true [params.postgis.releases.36] minor = "3.6" diff --git a/content/news/2026/09-08_postgis-3.7.0rc2.md b/content/news/2026/09-08_postgis-3.7.0rc2.md new file mode 100644 index 0000000..be57410 --- /dev/null +++ b/content/news/2026/09-08_postgis-3.7.0rc2.md @@ -0,0 +1,159 @@ +--- +title: PostGIS 3.7.0rc2 +layout: post +category: news +tags: [release, 3.7] +author: Regina Obe +thumbnail: +date: "2026-09-08" +--- + +The PostGIS Team is pleased to release PostGIS 3.7.0rc2! +Best Served with [PostgreSQL 19 Beta 3](https://www.postgresql.org/about/news/postgresql-186-1711-1615-1519-1424-and-19-beta-3-released-3365/) +, [GEOS 3.15.0](https://lists.osgeo.org/pipermail/geos-devel/2026-September/011196.html) +, [postgis_tiger_geocoder 2025.2]({{< loc "site.root">}}/2026/08/PostGIS-Tiger-Geocoder-2025.2/) +, and [address_standardizer](https://github.com/postgis/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. + +### 3.7.0rc2 + +* [source download]({{< loc "postgis.release_source">}}/postgis-3.7.0rc2.tar.gz) [md5]({{< loc "postgis.release_source">}}/postgis-3.7.0rc2.tar.gz.md5) +* [NEWS]({{< loc "postgis.release_notes">}}/3.7.0rc2/NEWS) +* HTML Online [en]({{< loc "site.root">}}docs/manual-3.7/en/) [ja]({{< loc "site.root">}}docs/manual-3.7/ja/) [zh_Hans]({{< loc "site.root">}}docs/manual-3.7/zh_Hans/) [fr]({{< loc "site.root">}}docs/manual-3.7/fr/) +* PDF docs: [en]({{< loc "postgis.dev_download">}}/postgis-3.7-en.pdf) [ja]({{< loc "postgis.dev_download">}}/postgis-3.7-ja.pdf), [zh_Hans]({{< loc "postgis.dev_download">}}/postgis-3.7-zh_Hans.pdf), [fr]({{< loc "postgis.dev_download">}}/postgis-3.7-fr.pdf) + +* Cheat Sheets: + * postgis: [en]({{< loc "site.root">}}docs/manual-3.7/postgis_cheatsheet-en.html) [ja]({{< loc "site.root">}}docs/manual-3.7/postgis_cheatsheet-ja.html) [zh_Hans]({{< loc "site.root">}}docs/manual-3.7/postgis_cheatsheet-zh_Hans.html) [fr]({{< loc "site.root">}}docs/manual-3.7/postgis_cheatsheet-fr.html) + * postgis_raster: [en]({{< loc "site.root">}}docs/manual-3.7/raster_cheatsheet-en.html) [ja]({{< loc "site.root">}}docs/manual-3.7/raster_cheatsheet-ja.html) [zh_Hans]({{< loc "site.root">}}docs/manual-3.7/raster_cheatsheet-zh_Hans.html) [fr]({{< loc "site.root">}}docs/manual-3.7/raster_cheatsheet-fr.html) + * postgis_topology: [en]({{< loc "site.root">}}docs/manual-3.7/topology_cheatsheet-en.html) [ja]({{< loc "site.root">}}docs/manual-3.7/topology_cheatsheet-ja.html) [zh_Hans]({{< loc "site.root">}}docs/manual-3.7/topology_cheatsheet-zh_Hans.html) [fr]({{< loc "site.root">}}docs/manual-3.7/topology_cheatsheet-fr.html) + * postgis_sfcgal: [en]({{< loc "site.root">}}docs/manual-3.7/sfcgal_cheatsheet-en.html) [ja]({{< loc "site.root">}}docs/manual-3.7/sfcgal_cheatsheet-ja.html) [zh_Hans]({{< loc "site.root">}}docs/manual-3.7/sfcgal_cheatsheet-zh_Hans.html) [fr]({{< loc "site.root">}}docs/manual-3.7/sfcgal_cheatsheet-fr.html) + +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` + +## Breaking Changes +* [#5688](https://trac.osgeo.org/postgis/ticket/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](https://trac.osgeo.org/postgis/ticket/6024), Remove support for PostgreSQL 12 and 13 (Regina Obe) +* [#6040](https://trac.osgeo.org/postgis/ticket/6040), ST_GeoHash round trip through ST_GeomFromGeoHash (Paul Ramsey) +* [#6053](https://trac.osgeo.org/postgis/ticket/6053), [address_standardizer] Extension removed and moved to [https://github.com/postgis/address_standardizer](https://github.com/postgis/address_standardizer) (Paul Ramsey) +* [#6052](https://trac.osgeo.org/postgis/ticket/6052), [tiger_geocoder] Extension removed and moved to [https://git.osgeo.org/postgis/postgis_tiger_geocoder](https://git.osgeo.org/postgis/postgis_tiger_geocoder) (Regina Obe) +* [#6079](https://trac.osgeo.org/postgis/ticket/6079), Remove support for GEOS < 3.10 (Sandro Santilli) +* [#1793](https://trac.osgeo.org/postgis/ticket/1793), Remove ST_MemCollect aggregate (Darafei Praliaskouski) +* [GH-848](https://github.com/postgis/postgis/pull/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) + +## New Features +* [#1124](https://trac.osgeo.org/postgis/ticket/1124), [#2935](https://trac.osgeo.org/postgis/ticket/2935), [#3033](https://trac.osgeo.org/postgis/ticket/3033), [#4658](https://trac.osgeo.org/postgis/ticket/4658), [#4659](https://trac.osgeo.org/postgis/ticket/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](https://trac.osgeo.org/postgis/ticket/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](https://trac.osgeo.org/postgis/ticket/5993), [topology] Add max_edges parameter to TopoGeo_AddLinestring (Sandro Santilli) +* [#6001](https://trac.osgeo.org/postgis/ticket/6001), support MultiLineString in ST_MakeLine (Paul Ramsey) +* [#2858](https://trac.osgeo.org/postgis/ticket/2858), ST_MMin and ST_MMax (Paul Ramsey) +* [#5941](https://trac.osgeo.org/postgis/ticket/5941), [raster] Support GDT_Float16 pixel type (Darafei Praliaskouski) +* [#5992](https://trac.osgeo.org/postgis/ticket/5992), Optimize GiST index for repeated edge subdivision in topology (Darafei Praliaskouski) +* [#5702](https://trac.osgeo.org/postgis/ticket/5702), Allow the compiler to detect the parallelism -flto=auto (Darafei Praliaskouski) +* [#4798](https://trac.osgeo.org/postgis/ticket/4798), ST_AsGeoJSON warns about duplicate property keys (Darafei Praliaskouski) +* [#4222](https://trac.osgeo.org/postgis/ticket/4222), [raster] ST_DumpAsPolygons honours PostgreSQL interrupts (Darafei Praliaskouski) +* [#5889](https://trac.osgeo.org/postgis/ticket/5889), [topology] Include representative locations in topology build errors (Darafei Praliaskouski) +* [#2614](https://trac.osgeo.org/postgis/ticket/2614), Use GEOSPreparedDistance and caching to accelerate ST_DWithin (Paul Ramsey) +* [GH-839](https://github.com/postgis/postgis/pull/839), ST_Multi support for TIN and surfaces (Lo?c Bartoletti) +* [#4398](https://trac.osgeo.org/postgis/ticket/4398), Add ST_CatmullSmoothing smoothes but retains original vertices (Paul Ramsey) +* [#4560](https://trac.osgeo.org/postgis/ticket/4560), ST_3DInterpolatePoint for M interpolation from XYZ inputs (Paul Ramsey) +* [#1291](https://trac.osgeo.org/postgis/ticket/1291), ST_MakePolygon support for curved rings (Darafei Praliaskouski) +* [GT-270](https://gitea.osgeo.org/postgis/postgis/pulls/270), Add NURBSCurve (Lo?c Bartoletti) +* [#2863](https://trac.osgeo.org/postgis/ticket/2863), Add ST_XSize, ST_YSize, ST_ZSize, and ST_MSize dimension helpers (Darafei Praliaskouski) + +## Enhancements +* [#2045](https://trac.osgeo.org/postgis/ticket/2045), pgsql2shp query dumps no longer require temporary table privileges (Darafei Praliaskouski) +* [#1577](https://trac.osgeo.org/postgis/ticket/1577), [loader] Report unsupported .zip archive input before trying to open shapefile sidecar files (Darafei Praliaskouski) +* [#3158](https://trac.osgeo.org/postgis/ticket/3158), Move geometry and geography typmod bit helpers out of the public liblwgeom header (Darafei Praliaskouski) +* [#3776](https://trac.osgeo.org/postgis/ticket/3776), [raster] Keep distinct 32-bit integer pixel values separate in ST_DumpAsPolygons (Darafei Praliaskouski) +* [#4678](https://trac.osgeo.org/postgis/ticket/4678), [raster] Move st_sum4ma neighborhood callback to C (Darafei Praliaskouski) +* [#2116](https://trac.osgeo.org/postgis/ticket/2116), [raster] Add ST_Value nearest-neighbor boundary options (Darafei Praliaskouski) +* [#2804](https://trac.osgeo.org/postgis/ticket/2804), [#4315](https://trac.osgeo.org/postgis/ticket/4315), [raster] Support two-argument ST_MapAlgebra callbacks and pass callback call data as actual arguments (Darafei Praliaskouski) +* [#6062](https://trac.osgeo.org/postgis/ticket/6062), [topology] Stop using recursive snapping, for improved robustness (Sandro Santilli) +* [#6065](https://trac.osgeo.org/postgis/ticket/6065), Improved winding order computation robustness for rings having collapsed elements (Sandro Santilli) +* [#2137](https://trac.osgeo.org/postgis/ticket/2137), [raster] Reuse matching source raster overviews in raster2pgsql -l (Darafei Praliaskouski) +* [#4749](https://trac.osgeo.org/postgis/ticket/4749), Use point-in-polygon predicate fast paths for point-only GeometryCollections (Darafei Praliaskouski) +* [#2807](https://trac.osgeo.org/postgis/ticket/2807), [raster] Preserve missing NODATA values in ST_MapAlgebra outputs (Darafei Praliaskouski) +* [#2832](https://trac.osgeo.org/postgis/ticket/2832), [raster] Avoid padding single-tile raster2pgsql overviews when padding is not requested (Darafei Praliaskouski) +* [#2623](https://trac.osgeo.org/postgis/ticket/2623), Generate a pgsql2shp GID field when exporting geometry-only shapefiles (Darafei Praliaskouski) +* [#2850](https://trac.osgeo.org/postgis/ticket/2850), Preserve pgsql2shp numeric precision and scale in DBF metadata (Darafei Praliaskouski) +* Build PostgreSQL extension modules with `-fno-semantic-interposition` when 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 18 `pgbench` microbenchmark over 100k four-point groups this reduced `ST_Collect` aggregate latency by about 4% (Darafei Praliaskouski) +* [#5973](https://trac.osgeo.org/postgis/ticket/5973), Install PostGIS utilities under `pg_config --bindir` by default and document `pg_config`-derived install paths more accurately (Darafei Praliaskouski) +* [#2808](https://trac.osgeo.org/postgis/ticket/2808), Clarify postgis_full_version() output when installed component scripts are newer than core scripts (Darafei Praliaskouski) +* [#2838](https://trac.osgeo.org/postgis/ticket/2838), Emit valid X3D Coordinate nodes for 2D polygon output (Darafei Praliaskouski) +* [GH-899](https://github.com/postgis/postgis/pull/899), [raster] Honor PostgreSQL interrupts in long-running GDAL progress callbacks (Darafei Praliaskouski) +* [#6073](https://trac.osgeo.org/postgis/ticket/6073), [#6074](https://trac.osgeo.org/postgis/ticket/6074), Stabilize geography LRS endpoint interpolation and pole centroid regressions on 32-bit systems (Darafei Praliaskouski) +* [#2583](https://trac.osgeo.org/postgis/ticket/2583), Preserve Z/ZM dimensional qualifiers in ST_AsEWKT output for TIN (Darafei Praliaskouski) +* [#4616](https://trac.osgeo.org/postgis/ticket/4616), Detect pgsql2shp query keywords case-insensitively (Darafei Praliaskouski) +* [#1986](https://trac.osgeo.org/postgis/ticket/1986), ST_GeomFromGML support for GML ArcString and curved polygon rings (Darafei Praliaskouski) +* [#4749](https://trac.osgeo.org/postgis/ticket/4749), Use point-in-polygon predicate fast paths for point-only GeometryCollections, including ST_Disjoint (Darafei Praliaskouski) +* [#3676](https://trac.osgeo.org/postgis/ticket/3676), Mark geometry and geography btree comparison support functions as leakproof (Darafei Praliaskouski) +* [GH-875](https://github.com/postgis/postgis/pull/875), Allow ST_OrderingEquals joins to use hash and merge join plans (Darafei Praliaskouski) +* [#1168](https://trac.osgeo.org/postgis/ticket/1168), [raster] Support curved geometry inputs in ST_AsRaster (Darafei Praliaskouski) +* [#1416](https://trac.osgeo.org/postgis/ticket/1416), ST_AsX3D outputs NURBSCURVE as X3D NurbsCurve and linearizes other curve geometries (Darafei Praliaskouski) +* [#3705](https://trac.osgeo.org/postgis/ticket/3705), ST_AsX3D outputs valid coordinate nodes for 2D multi-geometries and GeometryCollections (Darafei Praliaskouski) +* [GT-484](https://gitea.osgeo.org/postgis/postgis/pulls/484), Use column-level SELECT privileges for metadata views (Arthur Bazin) +* [#1408](https://trac.osgeo.org/postgis/ticket/1408), [#2386](https://trac.osgeo.org/postgis/ticket/2386), [#2557](https://trac.osgeo.org/postgis/ticket/2557), [#2805](https://trac.osgeo.org/postgis/ticket/2805), [#2898](https://trac.osgeo.org/postgis/ticket/2898), [#3743](https://trac.osgeo.org/postgis/ticket/3743), [#4323](https://trac.osgeo.org/postgis/ticket/4323), [#4332](https://trac.osgeo.org/postgis/ticket/4332), [#4385](https://trac.osgeo.org/postgis/ticket/4385), [#5109](https://trac.osgeo.org/postgis/ticket/5109), [#5532](https://trac.osgeo.org/postgis/ticket/5532), [#5593](https://trac.osgeo.org/postgis/ticket/5593), [#5638](https://trac.osgeo.org/postgis/ticket/5638), [#5645](https://trac.osgeo.org/postgis/ticket/5645), [#5950](https://trac.osgeo.org/postgis/ticket/5950), [#6022](https://trac.osgeo.org/postgis/ticket/6022), [#6082](https://trac.osgeo.org/postgis/ticket/6082), [GH-1161](https://github.com/postgis/postgis/pull/1161), [GT-584](https://gitea.osgeo.org/post gis/postgis/pulls/584), Numerous doc enhancements (Darafei Praliaskouski) + +* [GH-1175](https://github.com/postgis/postgis/pull/1175), Guard missing operands before reading node tags in spatial selectivity estimation (Maksim Korotkov) +* [#6118](https://trac.osgeo.org/postgis/ticket/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](https://trac.osgeo.org/postgis/ticket/6038), Avoid stale relation lookups in geometry_columns after topology objects are dropped (Darafei Praliaskouski) +* [#5487](https://trac.osgeo.org/postgis/ticket/5487), Improve error detail for repeated upgrades after an incomplete deprecated-function cleanup (Darafei Praliaskouski) +* [#5975](https://trac.osgeo.org/postgis/ticket/5975), Initialize skipped union-find cluster ids deterministically (Darafei Praliaskouski) +* [#5904](https://trac.osgeo.org/postgis/ticket/5904), [topology] Avoid MinGW format warnings when logging topology ids (Darafei Praliaskouski) +* [GH-888](https://github.com/postgis/postgis/pull/888), [sfcgal] Avoid stale detoasted geometry access in CG_Visibility empty-input handling for SFCGAL < 2.2 (Darafei Praliaskouski) +* [#3179](https://trac.osgeo.org/postgis/ticket/3179), Mark truncated libpgcommon PostgreSQL messages instead of silently dropping the tail (Darafei Praliaskouski) +* [#6003](https://trac.osgeo.org/postgis/ticket/6003), Avoid size_t formats in liblwgeom logging/error wrappers for MinGW builds (Darafei Praliaskouski) +* [GH-886](https://github.com/postgis/postgis/pull/886), ST_ClusterRelateWin validates NULL relate matrices before detoasting them (Darafei Praliaskouski) +* [GH-889](https://github.com/postgis/postgis/pull/889), ST_Relate pattern inversion avoids out-of-bounds access on short DE-9IM patterns (Darafei Praliaskouski) +* [GH-890](https://github.com/postgis/postgis/pull/890), Avoid GIDX BRIN summary merges across mismatched dimensions (Darafei Praliaskouski) +* [#5959](https://trac.osgeo.org/postgis/ticket/5959), Prevent histogram target overflow when analysing massive tables (Darafei Praliaskouski) +* [#6080](https://trac.osgeo.org/postgis/ticket/6080), Avoid out-of-bounds hex WKB lookup for high-bit input bytes (Darafei Praliaskouski) +* [#4828](https://trac.osgeo.org/postgis/ticket/4828), geometry_columns handles NOT VALID SRID checks without errors (Darafei Praliaskouski) +* [#6048](https://trac.osgeo.org/postgis/ticket/6048), [raster] ST_Clip no longer crashes when clipping sparse band selections (Darafei Praliaskouski) +* [GH-894](https://github.com/postgis/postgis/pull/894), [raster] Fix Float16 import, mixed nodata warping, band replacement cleanup, GDAL credential redaction, and Python GDAL compatibility (Darafei Praliaskouski) + + +### Upgrading + +After installing the binaries or after running pg_upgrade: + +For PostGIS 3 series +do below which will upgrade all your postgis extensions. +```postgres +SELECT postgis_extensions_upgrade(); +``` + + +For PostGIS 2 series: + +```postgres +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](https://trac.osgeo.org/postgis) +or [mailing list](https://lists.osgeo.org/listinfo/postgis-users) with details + +View all [tickets for 3.7.0rc2 milestone][1]. + +[1]: https://trac.osgeo.org/postgis/query?status=assigned&status=closed&milestone=PostGIS+3.7.0&milestone=PostGIS+3.6.4 ----------------------------------------------------------------------- Summary of changes: config.toml | 2 +- content/community/events/2026-postgis-day/index.md | 25 ++++ .../postgis-day-m.jpg | Bin .../postgis-day.jpg | Bin .../postgis-day.png | Bin ...is-3.7.0alpha1.md => 09-08_postgis-3.7.0rc2.md} | 129 ++++++++++----------- 6 files changed, 87 insertions(+), 69 deletions(-) create mode 100644 content/community/events/2026-postgis-day/index.md copy content/community/events/{2023-postgis-day => 2026-postgis-day}/postgis-day-m.jpg (100%) copy content/community/events/{2023-postgis-day => 2026-postgis-day}/postgis-day.jpg (100%) copy content/community/events/{2023-postgis-day => 2026-postgis-day}/postgis-day.png (100%) copy content/news/2026/{07-05_postgis-3.7.0alpha1.md => 09-08_postgis-3.7.0rc2.md} (72%) hooks/post-receive -- postgis.net From git at osgeo.org Tue Sep 8 21:39:41 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 21:39:41 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-54-g8a4f3526f Message-ID: <20260909043941.93F2B1B37DE@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 8a4f3526f410ceac1c38986098052b05cdf4b51c (commit) from 204c668278df12f699880e3e34a1c83fb5550b36 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8a4f3526f410ceac1c38986098052b05cdf4b51c Author: Teramoto Ikuhiro Date: Wed Sep 9 04:36:52 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.7% (6046 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 9d984de3b..50699e61a 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-08 07:39+0000\n" +"PO-Revision-Date: 2026-09-09 04:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -45485,6 +45485,10 @@ msgid "" "6074\">#6074, Stabilize geography LRS endpoint interpolation and pole " "centroid regressions on 32-bit systems (Darafei Praliaskouski)" msgstr "" +"#6073" +", #6074, 32??????????????????????????????????" +"????????????????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45538,6 +45542,9 @@ msgid "" "link>, Mark geometry and geography btree comparison support functions as " "leakproof (Darafei Praliaskouski)" msgstr "" +"#3676" +", ?????????????? B ??????? LEAKPROOF ?????? " +"(Darafei Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Tue Sep 8 23:39:17 2026 From: git at osgeo.org (git at osgeo.org) Date: Tue, 8 Sep 2026 23:39:17 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-55-g56d03c4dd Message-ID: <20260909063917.E6AD11B5813@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 56d03c4dd9deb5a1c0b140d59d15162e79cddd64 (commit) from 8a4f3526f410ceac1c38986098052b05cdf4b51c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 56d03c4dd9deb5a1c0b140d59d15162e79cddd64 Author: Teramoto Ikuhiro Date: Wed Sep 9 05:26:54 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.8% (6047 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 50699e61a..1f30f6548 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-09 04:39+0000\n" +"PO-Revision-Date: 2026-09-09 06:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -45732,6 +45732,10 @@ msgid "" "link>, [sfcgal] Avoid stale detoasted geometry access in CG_Visibility empty-" "input handling for SFCGAL < 2.2 (Darafei Praliaskouski)" msgstr "" +"GH-888, [sfcgal] SFCGAL < 2.2 ?? CG_Visibility ?????????????" +"? TOAST ??????????????????????????????????" +"? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Wed Sep 9 01:39:17 2026 From: git at osgeo.org (git at osgeo.org) Date: Wed, 9 Sep 2026 01:39:17 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-56-g48ead8f07 Message-ID: <20260909083918.2CCE31B7BD9@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 48ead8f0784912aae0a0bae8fd8778e629565688 (commit) from 56d03c4dd9deb5a1c0b140d59d15162e79cddd64 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 48ead8f0784912aae0a0bae8fd8778e629565688 Author: Teramoto Ikuhiro Date: Wed Sep 9 07:31:25 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.8% (6048 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 1f30f6548..e08aabe70 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-09 06:39+0000\n" +"PO-Revision-Date: 2026-09-09 08:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -45744,6 +45744,10 @@ msgid "" "link>, Mark truncated libpgcommon PostgreSQL messages instead of silently " "dropping the tail (Darafei Praliaskouski)" msgstr "" +"#3179" +", libpgcommon ?? PostgreSQL ???????????????????????" +"???????????????????????????????? (Darafei " +"Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From trac at osgeo.org Wed Sep 9 07:58:45 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 09 Sep 2026 14:58:45 -0000 Subject: [PostGIS] #6124: 3.7.0rc1 docs build failure without error message In-Reply-To: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> References: <046.3a8e05dc80362adec1f324d22d10cf47@osgeo.org> Message-ID: <061.a4f06ceb1f8652b9c1206ed750f9000f@osgeo.org> #6124: 3.7.0rc1 docs build failure without error message ----------------------------+--------------------------- Reporter: robe | Owner: robe Type: defect | Status: reopened Priority: blocker | Milestone: PostGIS 3.7.0 Component: documentation | Version: master Resolution: | Keywords: ----------------------------+--------------------------- Changes (by robe): * resolution: fixed => * status: closed => reopened Comment: As Greg pointed out. This is not a sufficient solution so reopening. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Wed Sep 9 11:07:59 2026 From: trac at osgeo.org (PostGIS) Date: Wed, 09 Sep 2026 18:07:59 -0000 Subject: [PostGIS] #6128: ST_intersects Gives false Positives related to meridian / antimeridian Message-ID: <053.72ae041105ec381261b1374425d82df0@osgeo.org> #6128: ST_intersects Gives false Positives related to meridian / antimeridian ----------------------------------------------+--------------------------- Reporter: BoulderPika | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: postgis | Version: 3.6.x Keywords: geospatial false positive lookup | ----------------------------------------------+--------------------------- I am seeing some squirrely behavior with ST_intersects when determining if a point intersects a polygon when a polygon touches (but does not span) the antimeridian and the lookup point lies on the meridian. This is easily reproducible in the latest docker image of postgis I could find. **Versions:**\\ SELECT version(); {{{ version -------------------------------------------------------------------------------------------------------------------- PostgreSQL 18.6 (Debian 18.6-1.pgdg13+2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit (1 row) }}} SELECT postgis_full_version(); {{{ postgis_full_version ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- POSTGIS="3.6.4 94d984b" [EXTENSION] PGSQL="180" GEOS="3.14.1-CAPI-1.20.5" (compiled against GEOS 3.13.1) PROJ="9.8.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 9.6.0) LIBXML="2.9.14" LIBJSON="0.18" LIBPROTOBUF="1.5.1" WAGYU="0.5.0 (Internal)" TOPOLOGY (1 row) }}} **Below are the steps to setup the geography:**\\ docker pull postgis/postgis:18-3.6\\ docker run --name postgis-container -e POSTGRES_PASSWORD=password -d postgis/postgis:18-3.6\\ docker exec -it postgis-container psql -U postgres\\ -- (1) Initialize\\ {{{ CREATE EXTENSION IF NOT EXISTS postgis; }}} -- (2) Versions before 3.12 had a bug: https://trac.osgeo.org/postgis/ticket/5838\\ {{{ SELECT PostGIS_GEOS_Version(); }}} -- (3) Make a table with (id, name, geography)\\ {{{ CREATE TABLE geojson_features ( id SERIAL PRIMARY KEY, name TEXT, geom geography(POLYGON, 4326) NOT NULL ); }}} -- (4) Add an index\\ {{{ CREATE INDEX idx_geojson_features_geom ON geojson_features USING GIST (geom); }}} -- (5) Add a polygon in the northern hemisphere, which contains the point (lon, lat) = (0, 25)\\ {{{ INSERT INTO geojson_features (name, geom) VALUES('poly1', ST_GeomFromGeojson(' { "type": "Polygon", "coordinates": [ [ [ -10, 10 ], [ -5, 10 ], [ 5, 20 ], [ 5, 30 ], [ -5, 40 ], [ -10, 40 ], [ -10, 10 ] ] ] } ' )::geography); }}} -- (6) The below southern hemisphere polygon is the western portion of "poly1" when translated to span the antemeridian and then sliced there\\ {{{ INSERT INTO geojson_features (name, geom) VALUES('poly2_west', ST_GeomFromGeojson(' { "type": "Polygon", "coordinates": [ [ [ -180, -35.4101725284 ], [ -175, -30 ], [ -175, -20 ], [ -180, -15.1725999559 ], [ -180, -35.4101725284 ] ] ] } ' )::geography); }}} -- (7) The below southern hemisphere polygon is the eastern portion of "poly1" when translated to span the antemeridian and then sliced there\\ {{{ INSERT INTO geojson_features (name, geom) VALUES('poly2_east', ST_GeomFromGeojson(' { "type": "Polygon", "coordinates": [ [ [ 180, -15.1725999559 ], [ 175, -10 ], [ 170, -10 ], [ 170, -40 ], [ 175, -40 ], [ 180, -35.4101725284 ], [ 180, -15.1725999559 ] ] ] } ' )::geography); }}} ===================================================== At this point, we have three polygons setup. I now wish to perform some point intersections. The below two execute as expected with a point very close to zero lon: {{{ SELECT name, ST_intersects(geom, ST_makepoint(-0.00001, 25)::geography) FROM geojson_features; }}} name | st_intersects\\ -------+---------------\\ poly1 | t\\ poly2 | f\\ poly3 | f\\ (3 rows)\\ {{{ SELECT name, ST_intersects(geom, ST_makepoint(0.00001, 25)::geography) FROM geojson_features; }}} name | st_intersects\\ -------+---------------\\ poly1 | t\\ poly2 | f\\ poly3 | f\\ (3 rows)\\ But on the next query, I get false positive results: {{{ SELECT name, ST_intersects(geom, ST_makepoint(0, 25)::geography) FROM geojson_features; }}} name | st_intersects\\ -------+---------------\\ poly1 | t\\ poly2 | t\\ poly3 | t\\ (3 rows)\\ Now the polygons in the southern hemisphere are included when the longitude is exactly 0. But they were excluded when close to zero. **Additional Details:** If I were to setup the two southern hemisphere polygons such that they were very close to the antimeridian (e.g. edges at 179.9999 instead of 180 and -179.9999 instead of -180) then the intersections behave as expected. This also appears to be a symptom of not using the index. When I have 5000 more polygons in the table, then I confirmed the index is being used in the optimizer and I get the results I expect. With just the three polygons, a sequetial scan is performed and I get the false positives. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From git at osgeo.org Thu Sep 10 19:39:18 2026 From: git at osgeo.org (git at osgeo.org) Date: Thu, 10 Sep 2026 19:39:18 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-57-g30d02784e Message-ID: <20260911023918.EAA501B8048@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 30d02784e09cb7d080729472ca975ecb452d42e6 (commit) from 48ead8f0784912aae0a0bae8fd8778e629565688 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 30d02784e09cb7d080729472ca975ecb452d42e6 Author: Teramoto Ikuhiro Date: Fri Sep 11 02:23:57 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.9% (6056 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index e08aabe70..3bf664acd 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-09 08:39+0000\n" +"PO-Revision-Date: 2026-09-11 02:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -45663,6 +45663,9 @@ msgid "" "link>, Guard missing operands before reading node tags in spatial " "selectivity estimation (Maksim Korotkov)" msgstr "" +"GH-1175, ???????????????????????????????????" +"??????? (Maksim Korotkov ??)" #. Tag: para #, no-c-format @@ -45713,6 +45716,9 @@ msgid "" "link>, Initialize skipped union-find cluster ids deterministically (Darafei " "Praliaskouski)" msgstr "" +"#5975" +", Union-Find ?????? ID ???????????? (Darafei Praliaskouski " +"??)" #. Tag: para #, no-c-format @@ -45767,6 +45773,9 @@ msgid "" "link>, ST_ClusterRelateWin validates NULL relate matrices before detoasting " "them (Darafei Praliaskouski)" msgstr "" +"GH-886, ST_ClusterRelateWin ????????? NULL ???? TOAST ?????" +"????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45775,6 +45784,9 @@ msgid "" "link>, ST_Relate pattern inversion avoids out-of-bounds access on short " "DE-9IM patterns (Darafei Praliaskouski)" msgstr "" +"GH-889, ST_Relate ?DE9IM ????????????????????????" +"?????????? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format @@ -45830,6 +45842,10 @@ msgid "" "cleanup, GDAL credential redaction, and Python GDAL compatibility (Darafei " "Praliaskouski)" msgstr "" +"GH-894, [raster] Float16 ???????NODATA ????????????????" +"?????????GDAL ????????Python GDAL ?????????? " +"(Darafei Praliaskouski ??)" #. Tag: title #, no-c-format @@ -48549,6 +48565,10 @@ msgid "" "in geometry_columns, as will a typmod one. In this example we define a " "column using typmod and another using constraints." msgstr "" +"????????????????????????????????" +"???????????????????? geometry_columns ?????????" +"??????????????????????????????????????" +"????? 1??????????" #. Tag: para #, no-c-format @@ -48575,6 +48595,8 @@ msgid "" "The typmod based geom view column registers correctly, but the constraint " "based one does not." msgstr "" +"???????????????????? geom ???????????????" +"??????????????????????" #. Tag: para #, no-c-format @@ -48582,6 +48604,9 @@ msgid "" "This may change in future versions of PostGIS, but for now to force the " "constraint-based view column to register correctly, you need to do this:" msgstr "" +"??? PostGIS ???????????????????????????????" +"??????????????????????????????????????" +"?????:" #. Tag: title #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Sep 10 21:39:16 2026 From: git at osgeo.org (git at osgeo.org) Date: Thu, 10 Sep 2026 21:39:16 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-58-gc9cb70a7c Message-ID: <20260911043917.46EA61B92B3@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via c9cb70a7cbeb759fbf1c73f87c085f3aeec1abb5 (commit) from 30d02784e09cb7d080729472ca975ecb452d42e6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c9cb70a7cbeb759fbf1c73f87c085f3aeec1abb5 Author: Teramoto Ikuhiro Date: Fri Sep 11 02:57:10 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.9% (6057 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 3bf664acd..513d42646 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-11 02:39+0000\n" +"PO-Revision-Date: 2026-09-11 04:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -45795,6 +45795,9 @@ msgid "" "link>, Avoid GIDX BRIN summary merges across mismatched dimensions (Darafei " "Praliaskouski)" msgstr "" +"GH-890, GIDX ? BRIN ????????????????????????????" +"??? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Thu Sep 10 23:39:22 2026 From: git at osgeo.org (git at osgeo.org) Date: Thu, 10 Sep 2026 23:39:22 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-59-g0443cbaf4 Message-ID: <20260911063922.C42FE1B9AE3@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via 0443cbaf46e154b30332687c0d698964da3ce696 (commit) from c9cb70a7cbeb759fbf1c73f87c085f3aeec1abb5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0443cbaf46e154b30332687c0d698964da3ce696 Author: Teramoto Ikuhiro Date: Fri Sep 11 05:29:21 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 99.9% (6058 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 513d42646..983b58679 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-11 04:39+0000\n" +"PO-Revision-Date: 2026-09-11 06:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -45814,6 +45814,10 @@ msgid "" "link>, Avoid out-of-bounds hex WKB lookup for high-bit input bytes (Darafei " "Praliaskouski)" msgstr "" +"#6080" +", WKB ? 16?????????????????????????????????" +"??????????????????????????? (Darafei " +"Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) hooks/post-receive -- PostGIS From git at osgeo.org Fri Sep 11 02:39:17 2026 From: git at osgeo.org (git at osgeo.org) Date: Fri, 11 Sep 2026 02:39:17 -0700 (PDT) Subject: [SCM] PostGIS branch master updated. 3.7.0rc1-60-gd28cf14b5 Message-ID: <20260911093917.E3FFC1BCC7B@trac.osgeo.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "PostGIS". The branch, master has been updated via d28cf14b5bccb8d42475bff832c16920dfcc31b0 (commit) from 0443cbaf46e154b30332687c0d698964da3ce696 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d28cf14b5bccb8d42475bff832c16920dfcc31b0 Author: Teramoto Ikuhiro Date: Fri Sep 11 09:27:47 2026 +0000 Translated PostGIS Manual using Weblate (Japanese) Currently translated at 100.0% (6059 of 6059 strings) Translation: postgis/PostGIS Manual Translate-URL: https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/ diff --git a/doc/po/ja/postgis-manual.po b/doc/po/ja/postgis-manual.po index 983b58679..bf236ff44 100644 --- a/doc/po/ja/postgis-manual.po +++ b/doc/po/ja/postgis-manual.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: postgis 3.5\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2026-08-04 15:37+0000\n" -"PO-Revision-Date: 2026-09-11 06:39+0000\n" +"PO-Revision-Date: 2026-09-11 09:39+0000\n" "Last-Translator: Teramoto Ikuhiro \n" "Language-Team: Japanese \n" @@ -6072,8 +6072,8 @@ msgstr "" "C ? https://" "github.com/json-c/json-c/releases/ ?????????????" "???????????????????????configure ????????" -"???????????????????? --without-json ?" -"???????" +"????????????????????? --without-json " +"????????" #. Tag: para #, no-c-format @@ -45806,6 +45806,9 @@ msgid "" "link>, Prevent histogram target overflow when analysing massive tables " "(Darafei Praliaskouski)" msgstr "" +"#5959" +", ?????????????????????????????????????" +"???? (Darafei Praliaskouski ??)" #. Tag: para #, no-c-format ----------------------------------------------------------------------- Summary of changes: doc/po/ja/postgis-manual.po | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) hooks/post-receive -- PostGIS From trac at osgeo.org Fri Sep 11 07:14:48 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 11 Sep 2026 14:14:48 -0000 Subject: [PostGIS] #6117: Expose GEOS revision level version to SQL In-Reply-To: <046.199a84cb5dc9244ab68344a4c85d284a@osgeo.org> References: <046.199a84cb5dc9244ab68344a4c85d284a@osgeo.org> Message-ID: <061.ae69c4c4f3decf2befb8531e73889904@osgeo.org> #6117: Expose GEOS revision level version to SQL --------------------------+--------------------------- Reporter: strk | Owner: strk Type: enhancement | Status: assigned Priority: medium | Milestone: PostGIS 3.8.0 Component: postgis | Version: master Resolution: | Keywords: --------------------------+--------------------------- Changes (by strk): * milestone: PostGIS Fund Me => PostGIS 3.8.0 * owner: pramsey => strk * status: new => assigned Comment: Proposed change: https://gitea.osgeo.org/postgis/postgis/pulls/800 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Sep 11 08:07:23 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 11 Sep 2026 15:07:23 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent Message-ID: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent -------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Keywords: | -------------------------------+--------------------------- In the file when have a set of edges for one face from topology where {{{ SELECT * FROM topology.ValidateTopology('arstat_2026_overlay_02_348'); }}} return no errors. The problem is that this cmd only return {{{ SELECT topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383) }}} the holes and not the geometry with out holes as it should. In the attached file I have this results {{{ CREATE TABLE edges_face_101383 as SELECT * from arstat_2026_overlay_02_348.edge_data WHERE left_face = 101383 OR right_face = 101383; SELECT 383 CREATE TABLE face_101383 as SELECT * from arstat_2026_overlay_02_348.face WHERE face_id = 101383; SELECT 1 }}} If I run the below commands we see the differences in area here {{{ select ST_area(ST_BuildArea(ST_Union(geom)),true) from edges_face_101383; st_area -------------------- 1268119.4254715773 (1 row) select ST_area(ST_BuildArea(ST_Collect(geom)),true) from edges_face_101383; st_area ------------------- 54170.41336798924 (1 row) }}} If run I see that outer ring (the longest one) is closed {{{ SELECT ST_Length(geom,true), ST_IsClosed(geom) from (SELECT (ST_Dump(ST_LineMerge(ST_BuildArea(ST_Union(geom))))).geom from edges_face_101383) order by ST_Length(geom,true) desc; ; st_length | st_isclosed --------------------+------------- 12018.787522620185 | t 748.8206485641832 | t 680.8574306008421 | t 537.1870265797996 | t 466.5554013026416 | t 388.7075360469263 | t 366.00361391545607 | t 196.274622247806 | t 187.68550474514345 | t (9 rows) }}} I am working a test case. Tested on {{{ POSTGIS="3.7.0dev 3.7.0rc1-22-g8e3220081" [EXTENSION] PGSQL="160" GEOS="3.14.0-CAPI-1.20.4" (compiled against GEOS 3.13.1) PROJ="8.2.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/var/lib/postgresql/.local/share/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 8.2.1) LIBXML="2.9.13" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)" TOPOLOGY }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Sep 11 08:08:04 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 11 Sep 2026 15:08:04 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.b7e80801b8dc86fa01890e73664e7c53@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by Lars Aksel Opsahl): * Attachment "Screenshot 2026-09-11 at 16.40.04.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Sep 11 08:08:24 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 11 Sep 2026 15:08:24 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.0ca5ede96dc77288ee6ae419decadf2a@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by Lars Aksel Opsahl): * Attachment "edges_face_101383.sql" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Fri Sep 11 14:14:24 2026 From: trac at osgeo.org (PostGIS) Date: Fri, 11 Sep 2026 21:14:24 -0000 Subject: [PostGIS] #6130: Geography distance is 0 for two lines where an end point of one is the antipode of an end point of the other Message-ID: <050.0bca31a3c85cdff4a3d814df6b42f08d@osgeo.org> #6130: Geography distance is 0 for two lines where an end point of one is the antipode of an end point of the other ----------------------+--------------------------- Reporter: ezimanyi | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: postgis | Version: 3.6.x Keywords: | ----------------------+--------------------------- ST_Distance on geography answers 0, and ST_Intersects and ST_DWithin answer true, for two lines that are 6654 km apart, whenever an end point of one line is the antipode of an end point of the other. Moving that end point by 0.001 degree gives the expected distance. Reproduction, PostGIS 3.6.4 (94d984b), PostgreSQL 18, GEOS 3.12.1: {{{ SELECT ST_Distance(geography 'LINESTRING(-90 0,0 0)', geography 'LINESTRING(90 0,0 60)'); -- 0 SELECT ST_Distance(geography 'LINESTRING(-90 0,0 0)', geography 'LINESTRING(90 0,0 60)', false); -- 0 SELECT ST_Intersects(geography 'LINESTRING(-90 0,0 0)', geography 'LINESTRING(90 0,0 60)'); -- t SELECT ST_DWithin(geography 'LINESTRING(-90 0,0 0)', geography 'LINESTRING(90 0,0 60)', 1000); -- t SELECT ST_AsText(ST_ShortestLine(geography 'LINESTRING(-90 0,0 0)', geography 'LINESTRING(90 0,0 60)')); -- LINESTRING(-90 0,-90 0) -- The same with the first line starting at -89.999: SELECT ST_Distance(geography 'LINESTRING(-89.999 0,0 0)', geography 'LINESTRING(90 0,0 60)'); -- 6654072.819... -- The closest pair is (0 0) and (0 60): SELECT ST_Distance(geography 'POINT(0 0)', geography 'POINT(0 60)'); -- 6654072.819... }}} Cause: edge_intersects() in liblwgeom/lwgeodetic.c. After ruling out the "no intersection" and "straddle" cases, it returns PIR_INTERSECTS for every remaining case, that is, whenever an end point of one edge lies on the plane of the other edge (side == 0). Such a point lies on the line where the two great circles meet, and the other edge contains either that point or its antipode. Here (-90 0), the start of the first edge, lies on the great circle of the edge (90 0)-(0 60) but is the antipode of that edge's start, so the edges do not meet, yet the touch is reported. The straddle case checks point_in_cone() before reporting an intersection; the touch cases do not. Proposed fix: count a touch only where the touching end point lies on the side of the centre of the sphere that holds the other edge. An edge is shorter than half a great circle, so that side contains the meeting point and not its antipode. The test is the sign of dot(P, B1 + B2); unlike point_in_cone(), whose strict comparison can reject a vertex that nearly coincides with the other edge's end point, it stays robust at a shared or nearly shared vertex. Measured with the patch applied to a vendored copy of liblwgeom (MobilityDB), whose edge_intersects() and point_in_cone() are identical to master's: the geography distance of the reproduction goes from 0 to 6654072.819 m, the value of the moved line and of the closest point pair, while edges that share an end point, cross, or touch at an end point still answer 0. I have not run the PostGIS regression suite with it. Patch against master d28cf14b5b: {{{ --- a/liblwgeom/lwgeodetic.c +++ b/liblwgeom/lwgeodetic.c @@ -3414,6 +3414,18 @@ } /** +* Utility function for edge_intersects(), true if P lies on the side of the +* center of the sphere that holds the edge A1/A2. +*/ +static int +edge_faces_point(const POINT3D *A1, const POINT3D *A2, const POINT3D *P) +{ + POINT3D AC; + vector_sum(A1, A2, &AC); + return dot_product(P, &AC) > 0.0; +} + +/** * Returns non-zero if edges A and B interact. The type of interaction is given in the * return value with the bitmask elements defined above. */ @@ -3493,30 +3505,36 @@ return PIR_NO_INTERACT; } - /* The rest are all intersects variants... */ - rv |= PIR_INTERSECTS; + /* The rest are all touch variants. An end point on the plane of the */ + /* other edge lies where the two great circles meet, and the other */ + /* edge, shorter than half a circle, holds either that point or its */ + /* antipode: it touches only in the first case. */ /* A touches B */ - if ( a1_side == 0 ) + if ( a1_side == 0 && edge_faces_point(B1, B2, A1) ) { /* Touches at A1, A2 is on what side? */ + rv |= PIR_INTERSECTS; rv |= (a2_side < 0 ? PIR_A_TOUCH_RIGHT : PIR_A_TOUCH_LEFT); } - else if ( a2_side == 0 ) + else if ( a2_side == 0 && edge_faces_point(B1, B2, A2) ) { /* Touches at A2, A1 is on what side? */ + rv |= PIR_INTERSECTS; rv |= (a1_side < 0 ? PIR_A_TOUCH_RIGHT : PIR_A_TOUCH_LEFT); } /* B touches A */ - if ( b1_side == 0 ) + if ( b1_side == 0 && edge_faces_point(A1, A2, B1) ) { /* Touches at B1, B2 is on what side? */ + rv |= PIR_INTERSECTS; rv |= (b2_side < 0 ? PIR_B_TOUCH_RIGHT : PIR_B_TOUCH_LEFT); } - else if ( b2_side == 0 ) + else if ( b2_side == 0 && edge_faces_point(A1, A2, B2) ) { /* Touches at B2, B1 is on what side? */ + rv |= PIR_INTERSECTS; rv |= (b1_side < 0 ? PIR_B_TOUCH_RIGHT : PIR_B_TOUCH_LEFT); } }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 00:57:04 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 07:57:04 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.3373ad3a48d65e91ebeabfc424ab6e97@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): > not the geometry with out holes as it should. It is expected that a face can have holes, why do you say it should have no holes ? The figure in the screenshot you attached is perfectly fine for what I can see: [[Image(Screenshot 2026-09-11 at 16.40.04.png)]] I'll check the SQL to try at understand the ST_Union vs ST_Collect issue (the former nodes, the latter does not) -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:05:00 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:05:00 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.61f644c6ab70f5ad28f67bca14bcd8f4@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by Lars Aksel Opsahl): * Attachment "Screenshot 2026-09-12 at 10.04.47.png" added. This is the expected result -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:06:34 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:06:34 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.c36989579385c229794c8c481cbd9886@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): Added is expected result running with zero tolerance (then it works ok) and no other changes. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:09:19 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:09:19 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.c1f9e29745e81046992ae45b6be843c4@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): I've imported all the edges from your sql into a new topology, and verified I got no drift (I had to order by edge_id descending or I was getting an additional snap otherwise, despite tolerance=0). This is how I did it: {{{ select createtopology('t6129', 4258); select topogeo_addlinestring('t6129', geom, 0) from edges_face_101383 order by edge_id desc; }}} This is how I verified all edges in the resulting topology had an equal edge in the source set: {{{ select e.edge_id from t6129.edge e where not exists ( select * from edges_face_101383 o where o.geom = e.geom ); -- 0 rows returned, OK select e.edge_id from t6129.edge e where not exists ( select * from t6129.edge o where o.geom = e.geom ); -- o rows returned, OK }}} The resulting topology is reported to be valid (no rows from `SELECT ValidateTopology`) I'm attaching the pgtopo_export of it. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:10:40 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:10:40 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.8040aa3c8efe523aa8aae5bc517e6e95@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "t6129.pgtopo" added. The topology built from the edges in edges_face_101383.sql -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:12:11 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:12:11 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.f8808707c56036b497360b47b8a2319d@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by Lars Aksel Opsahl): * Attachment "test_54_a_1.gzip" added. Dump of toplogy from result -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:13:47 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:13:47 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.72174513763590b5136928275479789b@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): I manged to create "small" test on my local mac here is the out put from pgtopo_export -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:19:52 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:19:52 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.693263fc985ec6c34c5a275b6c4aea1f@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): Replying to [comment:3 strk]: > I've imported all the edges from your sql into a new topology, and verified I got no drift (I had to order by edge_id descending or I was getting an additional snap otherwise, despite tolerance=0). This is how I did it: > {{{ > select createtopology('t6129', 4258); > select topogeo_addlinestring('t6129', geom, 0) from edges_face_101383 order by edge_id desc; > }}} > > This is how I verified all edges in the resulting topology had an equal edge in the source set: > {{{ > select e.edge_id from t6129.edge e where not exists ( select * from edges_face_101383 o where o.geom = e.geom ); -- 0 rows returned, OK > select e.edge_id from t6129.edge e where not exists ( select * from t6129.edge o where o.geom = e.geom ); -- o rows returned, OK > }}} > > The resulting topology is reported to be valid (no rows from `SELECT ValidateTopology`) > I'm attaching the pgtopo_export of it. It seem like problem is related from going from zero tolerance to 1e-07 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:49:22 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:49:22 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.3fdf4444949947ea1d4772e0a08b12bc@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): How are you obtaining those images ? Is it QGIS rendering TopoGeometry objects ? Or is it rendering of `ST_GetFaceGeometry` output ? -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:50:01 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:50:01 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.2369a57ec7e4402d4e7514c9801bd6aa@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): Pushed a test now in https://gitlab.com/nibioopensource/resolve-overlap- and-gap/-/merge_requests/120 Seems like we have both overlaps and gaps because of error in the topology If you run {{{ make clean ; make ; time sh src/test/sql/regress/run_resolve_test.sh --nodrop src/test/sql/regress/rog_overlay_test_54_a; }}} and after this run {{{ [local] lop at t1=# SELECT 'area of overlap' , round(st_area(geom,true)) from test_54_a_1.result_rogtest_overlap order by round(st_area(geom,true)); SELECT 'area of gaps' , round(st_area(geom,true)) from test_54_a_1.result_rogtest_gap order by round(st_area(geom,true)); ?column? | round -----------------+------- area of overlap | 5687 area of overlap | 7019 (2 rows) ?column? | round --------------+-------- area of gaps | 153 area of gaps | 957 area of gaps | 1339 area of gaps | 45572 area of gaps | 60530 area of gaps | 83592 area of gaps | 116433 area of gaps | 372300 area of gaps | 591234 }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 01:52:25 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 08:52:25 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.0797c1128064e50cae2e0f1bf4d5cf9b@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): Replying to [comment:6 strk]: > How are you obtaining those images ? Is it QGIS rendering TopoGeometry objects ? Or is it rendering of `ST_GetFaceGeometry` output ? Yes. In the ROG code where I pass back the results to simple feature I use ST_GetFaceGeometry and that the result used by the users. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:00:56 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:00:56 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.22fc6e5eec4bd99e73e1553fc0130fa9@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "missingArea9.png" added. the missing area -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:07:14 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:07:14 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.3a9b74c31141035f95697ed80e2b62d3@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by Lars Aksel Opsahl): * Attachment "Screenshot 2026-09-12 at 11.06.19.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:07:32 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:07:32 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.ba39f47d77d1c92d5ad8b39c98b1d390@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): Ok now I see and confirm the problem. From my dump the "offending" face is face 9. The function generating the face geometry (`ST_GetFaceGeometry`) is unable to build the correct geometry, completely dropping the exterior ring. [[Image(missingArea9.png)]] I also confirm the `ST_Collect` vs. `ST_Union` difference, with the `ST_Union` version evidently including the outer ring: {{{ strk at strk=# select ST_Area(ST_BuildArea(ST_Union(e.geom))) from t6129.edge e where e.left_face = 9 or e.right_face = 9; st_area ----------------------- 0.0002930648390859782 (1 row) Time: 8.704 ms strk at strk=# select ST_Area(ST_BuildArea(ST_Collect(e.geom))) from t6129.edge e where e.left_face = 9 or e.right_face = 9; st_area ------------------------ 1.2519093540856632e-05 (1 row) Time: 15.293 ms }}} It sounds like a robustness issue. I'll take a closer look at ST_GetFaceGeometry. My relevant versions: {{{ POSTGIS="3.7.0dev 3.7.0rc1-61-gf8777b8ce" GEOS="3.14.1-CAPI-1.20.5" }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:07:57 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:07:57 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.ffd28bc3a85fd7ec29f2cfb52032bc9d@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): If run test src/test/sql/regress/rog_overlay_test_54_a the green area here file is the missing area -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:09:24 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:09:24 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.07fcaa1b9c057a800869ab17335cf4f7@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): On my local mac I am testing on {{{ POSTGIS="3.7.0dev 3.6.0rc2-473-g260127869" [EXTENSION] PGSQL="160" GEOS="3.14.1-CAPI-1.20.5" PROJ="9.8.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/Users/lop/Library/Application Support/proj DATABASE_PATH=/opt/homebrew/Cellar/proj/9.8.1/share/proj/proj.db" (compiled against PROJ 9.8.1) LIBXML="2.9.13" LIBJSON="0.18" LIBPROTOBUF="1.5.2" WAGYU="0.5.0 (Internal)" TOPOLOGY }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:25:06 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:25:06 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.9eccccdadf9e6cb88a6ddba86149cdb0@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "RingEdge-102.png" added. Ring on the right side of edge 102 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:27:02 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:27:02 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "RingEdge-102.png" removed. Ring on the right side of edge 102 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:33:07 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:33:07 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.5374856031114b906355e14c4c2f51e6@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "t6129_outer_ring_edges.sql" added. edges of outer ring of face 9 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:33:35 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:33:35 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.541ca72a4b2501daf632f2e6e20f82a2@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): The bug seems to be fully inside ST_BuildArea, either it's a but there OR the edges are not properly noded according to GEOS: {{{ strk at strk=# select st_area(st_buildarea(st_collect(geom))) from t6129_outer_ring_edges; st_area --------- (1 row) strk at strk=# select st_area(st_buildarea(st_union(geom))) from t6129_outer_ring_edges; st_area ------------------------ 0.00030558393262683487 (1 row) }}} The t6129_outer_ring_edges table is created by t6129_outer_ring_edges.sql just attached -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:53:28 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:53:28 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.2a1eb7b90276a3b045249f2078023733@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): The outer ring is composed by 367 edges, connected by 367 nodes each of degree 2 (every connecting node has no other edge than the 2 edges forming the ring): {{{ with node_edges as ( select start_node nod, edge_id from t6129.edge union all select end_node, edge_id from t6129.edge ) select nod, array_agg(edge_id) from node_edges where edge_id in ( select edge_id from t6129_outer_ring_edges ) group by nod; }}} This is what I'd call "fully noded". The total number of vertices for those 367 edges is 1543, when linemerged we get a single line with 1177 vertices, which matches 1543-367+1: {{{ strk at strk=# select sum(st_npoints(geom))-count(geom)+1 from t6129_outer_ring_edges; ?column? ---------- 1177 (1 row) strk at strk=# select st_npoints(ST_LineMerge(ST_Collect(geom))) from t6129_outer_ring_edges ; st_npoints ------------ 1177 (1 row) }}} So all seems fine. Where's the catch ? The LineMerge output is NOT simple ! {{{ strk at strk=# select ST_IsSimple(ST_LineMerge(ST_Collect(geom))) from t6129_outer_ring_edges ; st_issimple ------------- f (1 row) }}} -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 02:59:55 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 09:59:55 -0000 Subject: [PostGIS] #6131: ST_IsSimpleDetail function Message-ID: <046.556878197b5b86fbf9626242637a4123@osgeo.org> #6131: ST_IsSimpleDetail function -------------------------+--------------------------- Reporter: strk | Owner: pramsey Type: enhancement | Status: new Priority: medium | Milestone: PostGIS 3.8.0 Component: postgis | Version: master Keywords: | -------------------------+--------------------------- We have ST_IsSimple but when the return is "false" we don't have much information about WHY the line is not simple, and WHERE it is not simple. Similarly to ST_IsValidDetail ( https://postgis.net/docs/ST_IsValidDetail.html ) an ST_IsSimpleDetail would give us such information. GEOSisSimpleDetail is available in GEOS starting from 3.14.0 (2025-08-21) -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 03:02:31 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 10:02:31 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.50c2cf3f4de225bee90b95ebc3aaec74@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): Finding out WHERE and WHY the line is not simple is currently not easy. See #6131 for exposing a function to get that information out. In any case if ST_LineMerge is right then we're missing an invalidity from ValidateTopology. Or if ST_LineMerge is wrong, the bug is in ST_LineMerge ! I'll try with an older GEOS. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 03:08:46 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 10:08:46 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.70144515aa7919491fdfa61ad1bdd584@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "SelfContact.png" added. Self-Contact point according to QGIS processing -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 03:13:19 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 10:13:19 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.41691b6300e4e6944c643407f9a09faf@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "ProblematicArea.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 03:19:36 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 10:19:36 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.3ab7148f3b1fc37b8bb07b21e2c62dfb@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "ProblematicAreaDetail.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 03:26:26 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 10:26:26 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.afd2105670bc58144690560eba188040@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): According to QGIS there's a self-contact in the ring in the [[Image(SelfContact.png)]] Looking close with TopoViewer this is the problematic area: [[Image(ProblematicArea.png)]] The tiny red arrow pointing up above edge 371 is probably edge 383 which QGIS doesn't even handle to place a label for (but you can find out with the Info tool of QGIS). Some info about the problematic area: {{{ =# select edge_id, start_node, end_node, st_issimple(geom), st_length(geom) from t6129.edge where edge_id in ( 371, 304, 383 ); edge_id | start_node | end_node | st_issimple | st_length ---------+------------+----------+-------------+------------------------ 371 | 376 | 306 | t | 2.7514787551148605e-05 304 | 309 | 310 | t | 0.0016005631542521598 383 | 376 | 310 | t | 4.9083385500421105e-09 (3 rows) }}} Problematic area detail: [[Image(ProblematicAreaDetail.png)]] Note that the yellow edge (304) is reported to be simple, but evidently has a vertex which is very very close to one of its own segments. This is one of those cases that should be reported by [https://postgis.net/docs /manual-dev/en/FindVertexSegmentPairsBelowDistance.html FindVertexSegmentPairsBelowDistance] but can probably NOT be fixed by adding a node there ( due to #6121 ) -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 03:42:04 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 10:42:04 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.0846ff646a740e6a30cc8e469b43d59c@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): Should problem cases like this also be report by ValidateTopology ? -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 09:19:46 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 16:19:46 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.d3b38c5001f312f1de1f5652b1701955@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): Replying to [comment:16 Lars Aksel Opsahl]: > Should problem cases like this also be report by ValidateTopology ? Only if LineMerge is right, but I can't tell it is, or at least ST_IsSimple contraddicts it. Basically what we are seeing is ST_LineMerge turning a set of simple and non-intersecting lines into a non-simple one. I suspect it's a bug in ST_LineMerge. I'll reduce the testcase. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 09:41:39 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 16:41:39 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.e2bc934164a13d1ba8b22f30027cbefc@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): This is the relation between any pair of edges: {{{ =# select count(*), rel from ( select ST_Relate(e1.geom, e2.geom) rel from t6129_outer_ring_edges e1, t6129_outer_ring_edges e2 where e2.edge_id > e1.edge_id ) foo group by 2; count | rel -------+----------- 367 | FF1F00102 66794 | FF1FF0102 (2 rows) }}} No pair has any interior-interior (1st matrix position) or interior- boundary (2nd and 4th position) intersection. No single edge is non-simple, but the output of ST_LineMerge(ST_Collect(geom)) is non-simple: {{{ =# select count(*) filter ( WHERE not ST_IsSimple(geom) ) nonsimple_count, ST_IsSimple(ST_LineMerge(ST_Collect(geom))) from t6129_outer_ring_edges; nonsimple_count | st_issimple -----------------+------------- 0 | f (1 row) }}} I'm calling this a bug in ST_LineMerge! -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 09:52:34 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 16:52:34 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.fbe6a08602e49bc734c1e09fbaab13de@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): I get the same bogus results with: - POSTGIS="3.7.0dev 3.7.0rc1-56-g48ead8f07" - GEOS="3.10.8dev-CAPI-1.16.7" -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 10:08:51 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 17:08:51 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.0d71c909c7670ec5672616d36ef61d43@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "edge304-changed-geom.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 10:11:55 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 17:11:55 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.081ea4a0638b7a57e8c1df9d0a967995@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "new-edge-385.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 10:14:34 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 17:14:34 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.7db2aced3b42c7b5fb5a0f116cb821a4@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "UpdatedProblematicAreaDetail.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 10:20:32 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 17:20:32 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "UpdatedProblematicAreaDetail.png" removed. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 10:20:32 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 17:20:32 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.a05829b9596275a8a902366f6fafe181@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Changes (by strk): * Attachment "UpdatedProblematicAreaDetail.png" added. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 10:21:27 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 17:21:27 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.57307e05af95cf058af81fc67d4f24c9@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): One workaround to move on with data cleaning, in this specific case would be to add a single-segment edge from node 309 to node 310, so to form a new tiny face on the right of edge 304 (and left of the new edge), and then drop edge 304. Identifier numbers are those from the t6129.pgtopo export. But we can't add that single-segment new edge either because that edge 304 has those 2 segments being almost coincidental and this introduces robustness problems, so we first need to add a vertex to 304, changing it's geom as in the below picture: [[Image(edge304-changed-geom.png)]] Then adding the new edge works: {{{ # select ST_AddEdgeModFace('t6129', 309, 310, ( select ST_MakeLine(n1.geom, n2.geom) from t6129.node n1, t6129.node n2 where n1.node_id = 309 and n2.node_id = 310 )); st_addedgemodface ------------------- 385 (1 row) }}} [[Image(new-edge-385.png)]] Then we remove the offending edge: {{{ =# select st_remedgemodface('t6129', 304); st_remedgemodface ------------------- 10 (1 row) }}} [[Image(UpdatedProblematicAreaDetail.png)]] And finally we can get the proper area: {{{ # select ST_Area(ST_GetFaceGeometry('t6129', 10)); st_area ----------------------- 0.0002930648390859782 (1 row) }}} Note that this method makes the face of intereset change identifier (from 9 to 10 in this case) because ST_RemEdgeModFace keeps the identifier of the face on the right side, which in our case will be the new tiny face. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 11:21:36 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 18:21:36 -0000 Subject: [PostGIS] #6132: ST_LineMerge turns a set of fully-noded simple lines into a non-simple line Message-ID: <046.1844acde3aca994f88d78c3c926c82ec@osgeo.org> #6132: ST_LineMerge turns a set of fully-noded simple lines into a non-simple line ---------------------+--------------------------- Reporter: strk | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.7.0 Component: postgis | Version: 3.6.x Keywords: | ---------------------+--------------------------- This is a spin-off of #6129 but focused on ST_LineMerge doing undocumented/unwanted editing of input lines. This 2 input lines: 1. 0102000020A2100000030000005163B45884333540352259FDE66A51406043FEC3BA333540C0BFF081E66A5140831D215B88333540107B41F4E66A5140 2. 0102000020A210000002000000685E205B88333540B7363CF4E66A5140831D215B88333540107B41F4E66A5140 Are simple and have an endpoint in common. ST_LineMerge outputs a non- simple line: 0102000020A2100000040000005163B45884333540352259FDE66A51406043FEC3BA333540C0BFF081E66A5140831D215B88333540107B41F4E66A5140685E205B88333540B7363CF4E66A5140 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 11:22:54 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 18:22:54 -0000 Subject: [PostGIS] #6132: ST_LineMerge turns a set of fully-noded simple lines into a non-simple line In-Reply-To: <046.1844acde3aca994f88d78c3c926c82ec@osgeo.org> References: <046.1844acde3aca994f88d78c3c926c82ec@osgeo.org> Message-ID: <061.0d4a594a5292da7876f0d27bfe614519@osgeo.org> #6132: ST_LineMerge turns a set of fully-noded simple lines into a non-simple line ----------------------+--------------------------- Reporter: strk | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.7.0 Component: postgis | Version: 3.6.x Resolution: | Keywords: ----------------------+--------------------------- Changes (by strk): * Attachment "linemerge.sql" added. testcase -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 11:25:57 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 18:25:57 -0000 Subject: [PostGIS] #6132: ST_LineMerge turns a set of fully-noded simple lines into a non-simple line In-Reply-To: <046.1844acde3aca994f88d78c3c926c82ec@osgeo.org> References: <046.1844acde3aca994f88d78c3c926c82ec@osgeo.org> Message-ID: <061.49459da636cbfd61ad066614f16b6a29@osgeo.org> #6132: ST_LineMerge turns a set of fully-noded simple lines into a non-simple line ----------------------+--------------------------- Reporter: strk | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.7.0 Component: postgis | Version: 3.6.x Resolution: | Keywords: ----------------------+--------------------------- Comment (by strk): I've tested the attached testcase linemerge.sql against GEOS-3.10.8dev- CAPI-1.16.7 and current GEOS main: the problem persists. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 11:29:40 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 18:29:40 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.c425761579e3557e83c7c208cbd4a44f@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by Lars Aksel Opsahl): This is a single case that may happens anywhere, but we do have some code to remove sliver polygons that may help out here. -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 11:33:07 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 18:33:07 -0000 Subject: [PostGIS] #6132: ST_LineMerge turns a set of fully-noded simple lines into a non-simple line In-Reply-To: <046.1844acde3aca994f88d78c3c926c82ec@osgeo.org> References: <046.1844acde3aca994f88d78c3c926c82ec@osgeo.org> Message-ID: <061.59fa3bb5f38007189b45255c4a86e8ea@osgeo.org> #6132: ST_LineMerge turns a set of fully-noded simple lines into a non-simple line ----------------------+--------------------------- Reporter: strk | Owner: pramsey Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.7.0 Component: postgis | Version: 3.6.x Resolution: | Keywords: ----------------------+--------------------------- Comment (by strk): Filed upstream: https://github.com/libgeos/geos/issues/1530 -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project. From trac at osgeo.org Sat Sep 12 11:34:36 2026 From: trac at osgeo.org (PostGIS) Date: Sat, 12 Sep 2026 18:34:36 -0000 Subject: [PostGIS] #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent In-Reply-To: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> References: <050.e6a0829f8f56ea1cd80afcb0cf7f07d8@osgeo.org> Message-ID: <065.0e307ec2ef956c98084ff73735a74d38@osgeo.org> #6129: Missing area with topology.ST_GetFaceGeometry('arstat_2026_overlay_02_348',101383), but alle edges seems to be prensent --------------------------------+--------------------------- Reporter: Lars Aksel Opsahl | Owner: strk Type: defect | Status: new Priority: medium | Milestone: PostGIS 3.6.5 Component: topology | Version: 3.6.x Resolution: | Keywords: --------------------------------+--------------------------- Comment (by strk): It's not a full polygon in this case, just a sliver piece of linework, but yes, that's the problem. I've filed #6132 more focused on ST_LineMerge which is definitely the culprit here, unless ST_IsSimple is failing to detect simplicity in input... -- Ticket URL: PostGIS The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.