[postgis-tickets] [SCM] PostGIS branch master updated. 3.1.0alpha2-45-gb81beb8

git at osgeo.org git at osgeo.org
Wed Aug 5 01:18:57 PDT 2020


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  b81beb8d319b103692e5a954d77223ba3b94b346 (commit)
      from  6dc7c14e2e5fc8d4d04c1b336825cf774bbd8890 (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 b81beb8d319b103692e5a954d77223ba3b94b346
Author: Sandro Santilli <strk at kbt.io>
Date:   Wed Aug 5 10:17:17 2020 +0200

    ST_CreateTopoGeo edge splitting improvement
    
    Direclty use ST_Split now that it supports split by multipoint,
    avoid use of ST_UnaryUnion to be immune to GEOS-3.9 OverlayNG
    behavioural changes (in case they will remain)

diff --git a/topology/sql/sqlmm.sql.in b/topology/sql/sqlmm.sql.in
index 629eef4..a2f41d3 100644
--- a/topology/sql/sqlmm.sql.in
+++ b/topology/sql/sqlmm.sql.in
@@ -13,7 +13,7 @@
 --
 --
 
-/* #define POSTGIS_TOPOLOGY_DEBUG 1 */
+/*#define POSTGIS_TOPOLOGY_DEBUG 1*/
 
 --={ ----------------------------------------------------------------
 --  SQL/MM block
@@ -497,22 +497,15 @@ BEGIN
 #endif
 
   --
-  -- Further split edges by points
-  -- TODO: optimize this adding ST_Split support for multiline/multipoint
+  -- Further split edges by points, if needed
   --
-  FOR rec IN SELECT geom FROM ST_Dump(points)
-  LOOP
-    -- Use the node to split edges
-    SELECT ST_Collect(geom)
-    FROM ST_Dump(ST_Split(nodededges, rec.geom))
-    INTO STRICT nodededges;
-  END LOOP;
-  SELECT ST_UnaryUnion(nodededges) INTO STRICT nodededges;
-
+  IF points IS NOT NULL THEN
+    nodededges := ST_Split(nodededges, points);
 #ifdef POSTGIS_TOPOLOGY_DEBUG
-  RAISE DEBUG 'Noded edges became % after point-split',
-    ST_NumGeometries(nodededges);
+    RAISE DEBUG 'Noded edges became % after point-split',
+      ST_NumGeometries(nodededges);
 #endif
+  END IF; -- points is not null
 
   --
   -- Collect all nodes (from points and noded linework endpoints)

-----------------------------------------------------------------------

Summary of changes:
 topology/sql/sqlmm.sql.in | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)


hooks/post-receive
-- 
PostGIS


More information about the postgis-tickets mailing list