]> granicus.if.org Git - postgis/commitdiff
Fix GetGopoGeomElementArray code (#1730)
authorSandro Santilli <strk@keybit.net>
Wed, 28 Mar 2012 11:36:52 +0000 (11:36 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 28 Mar 2012 11:36:52 +0000 (11:36 +0000)
Includes regression testing for both GetGopoGeomElements
and GetGopoGeomElementArray

git-svn-id: http://svn.osgeo.org/postgis/trunk@9568 b70326c6-7e19-0410-871a-916f4a2858ee

topology/test/Makefile
topology/test/regress/gettopogeomelements.sql [new file with mode: 0644]
topology/test/regress/gettopogeomelements_expected [new file with mode: 0644]
topology/topology.sql.in.c

index b679a7e7c84607c2e76757974a22d392f87b809c..bc143f38544f31fbefaa1e1e90f13807314c6b40 100644 (file)
@@ -60,6 +60,7 @@ TESTS = regress/legacy_validate.sql regress/legacy_predicate.sql \
        regress/getedgebypoint.sql \
        regress/getfacebypoint.sql \
        regress/getringedges.sql \
+       regress/gettopogeomelements.sql \
        regress/layertrigger.sql
 
 check: topo_predicates.sql load_topology.sql load_topology-4326.sql
diff --git a/topology/test/regress/gettopogeomelements.sql b/topology/test/regress/gettopogeomelements.sql
new file mode 100644 (file)
index 0000000..e03648d
--- /dev/null
@@ -0,0 +1,22 @@
+set client_min_messages to WARNING;
+
+\i load_topology.sql
+\i load_features.sql
+
+SELECT lid, tid, GetTopoGeomElements('city_data', lid, tid)
+FROM (
+ SELECT DISTINCT layer_id as lid, topogeo_id as tid
+ FROM city_data.relation
+) as f
+order by 1, 2, 3;
+
+SELECT lid, tid, 'ARY', GetTopoGeomElementArray('city_data', lid, tid)
+FROM (
+ SELECT DISTINCT layer_id as lid, topogeo_id as tid
+ FROM city_data.relation
+) as f
+order by 1, 2;
+
+-- clean up
+SELECT topology.DropTopology('city_data');
+DROP SCHEMA features CASCADE;
diff --git a/topology/test/regress/gettopogeomelements_expected b/topology/test/regress/gettopogeomelements_expected
new file mode 100644 (file)
index 0000000..4ec0a68
--- /dev/null
@@ -0,0 +1,43 @@
+BEGIN
+t
+9
+22
+26
+COMMIT
+BEGIN
+1
+2
+3
+COMMIT
+1|1|{3,3}
+1|1|{6,3}
+1|2|{4,3}
+1|2|{7,3}
+1|3|{5,3}
+1|3|{8,3}
+1|4|{2,3}
+1|5|{1,3}
+2|1|{14,1}
+2|2|{13,1}
+2|3|{6,1}
+2|4|{4,1}
+3|1|{9,2}
+3|1|{10,2}
+3|2|{4,2}
+3|2|{5,2}
+3|3|{25,2}
+3|4|{3,2}
+1|1|ARY|{{3,3},{6,3}}
+1|2|ARY|{{4,3},{7,3}}
+1|3|ARY|{{5,3},{8,3}}
+1|4|ARY|{{2,3}}
+1|5|ARY|{{1,3}}
+2|1|ARY|{{14,1}}
+2|2|ARY|{{13,1}}
+2|3|ARY|{{6,1}}
+2|4|ARY|{{4,1}}
+3|1|ARY|{{9,2},{10,2}}
+3|2|ARY|{{4,2},{5,2}}
+3|3|ARY|{{25,2}}
+3|4|ARY|{{3,2}}
+Topology 'city_data' dropped
index 25f9a06b3a51c06050fb15253ab272c4a61c03aa..3f217b0be508b36df480776e2a8a41b778ebe9a4 100644 (file)
@@ -1025,11 +1025,15 @@ BEGIN
 
   query = 'SELECT * FROM topology.GetTopoGeomElements('
     || quote_literal(toponame) || ','
-    || quote_literal(layerid) || ','
+    || quote_literal(layer_id) || ','
     || quote_literal(tgid)
     || ') as obj ORDER BY obj';
 
-  RAISE NOTICE 'Query: %', query;
+#ifdef POSTGIS_TOPOLOGY_DEBUG
+  RAISE DEBUG 'Query: %', query;
+#endif
+
+  -- TODO: why not using array_agg here ?
 
   i = 1;
   FOR rec IN EXECUTE query