]> granicus.if.org Git - postgis/commitdiff
ValidateTopology: swap edge_id and node_id for "edge crosses node" (#3022)
authorSandro Santilli <strk@keybit.net>
Tue, 27 Jan 2015 18:16:29 +0000 (18:16 +0000)
committerSandro Santilli <strk@keybit.net>
Tue, 27 Jan 2015 18:16:29 +0000 (18:16 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@13205 b70326c6-7e19-0410-871a-916f4a2858ee

doc/extras_topology.xml
topology/test/regress/legacy_invalid_expected
topology/topology.sql.in

index 1774f9727bb5319e06ac17296afec3b2d0a699b5..ea8e5b70a0dd35294ceb36113d9a49c45b95a39e 100644 (file)
@@ -491,8 +491,8 @@ SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', 'LINE');
                         <tbody>
                             <row>
                                     <entry>edge crosses node</entry>
+                                    <entry>edge_id</entry>
                                     <entry>node_id</entry>
-                                    <entry>edge_id # NOTE: should this be swapped?</entry>
                             </row>
                             <row>
                                     <entry>invalid edge</entry>
index 67e0404a44edbf0c63fe6ef1dc9b6ed4a73532ec..b4d57549d6080faa6295a544f305f97df3e770ca 100644 (file)
@@ -1,8 +1,8 @@
 BEGIN
 t
 coincident nodes|1|23
-edge crosses node|23|1
-edge crosses node|14|27
+edge crosses node|1|23
+edge crosses node|27|14
 edge not simple|28|
 invalid edge|33|
 edge crosses edge|2|28
index 58f5ed191070d69b0f1accc2550469433f93ee2e..56c0aff4c57e7691faefef6c19d884bfec28e10e 100644 (file)
@@ -1365,7 +1365,7 @@ BEGIN
 
   -- Check for edge crossed nodes
   -- TODO: do this in the single edge loop
-  FOR rec IN EXECUTE 'SELECT n.node_id as id1, e.edge_id as id2 FROM '
+  FOR rec IN EXECUTE 'SELECT n.node_id as nid, e.edge_id as eid FROM '
     || quote_ident(toponame) || '.node n, '
     || quote_ident(toponame) || '.edge e '
     || 'WHERE e.start_node != n.node_id '
@@ -1373,8 +1373,8 @@ BEGIN
     || 'AND ST_Within(n.geom, e.geom)'
   LOOP
     retrec.error = 'edge crosses node';
-    retrec.id1 = rec.id1;
-    retrec.id2 = rec.id2;
+    retrec.id1 = rec.eid; -- edge_id
+    retrec.id2 = rec.nid; -- node_id
     RETURN NEXT retrec;
   END LOOP;