From: Sandro Santilli Date: Tue, 27 Jan 2015 18:16:29 +0000 (+0000) Subject: ValidateTopology: swap edge_id and node_id for "edge crosses node" (#3022) X-Git-Tag: 2.2.0rc1~689 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=54f2b86799d44559a0b1e382a1380b9929c9dcbd;p=postgis ValidateTopology: swap edge_id and node_id for "edge crosses node" (#3022) git-svn-id: http://svn.osgeo.org/postgis/trunk@13205 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/doc/extras_topology.xml b/doc/extras_topology.xml index 1774f9727..ea8e5b70a 100644 --- a/doc/extras_topology.xml +++ b/doc/extras_topology.xml @@ -491,8 +491,8 @@ SELECT topology.AddTopoGeometryColumn('ri_topo', 'ri', 'roads', 'topo', 'LINE'); edge crosses node + edge_id node_id - edge_id # NOTE: should this be swapped? invalid edge diff --git a/topology/test/regress/legacy_invalid_expected b/topology/test/regress/legacy_invalid_expected index 67e0404a4..b4d57549d 100644 --- a/topology/test/regress/legacy_invalid_expected +++ b/topology/test/regress/legacy_invalid_expected @@ -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 diff --git a/topology/topology.sql.in b/topology/topology.sql.in index 58f5ed191..56c0aff4c 100644 --- a/topology/topology.sql.in +++ b/topology/topology.sql.in @@ -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;