-- Check that you can add a second topogeometry column to the same table
select 'T2', addtopogeometrycolumn('tt','public','feature','tg2','LINE');
+-- Check polygonal
+select 'T3', addtopogeometrycolumn('tt','public','feature','tg3','POLYGON');
+
+-- Check collection
+select 'T4', addtopogeometrycolumn('tt','public','feature','tg4','COLLECTION');
+
+-- Check alternate names
+select 'T5', addtopogeometrycolumn('tt','public','feature',
+ 'tg5','ST_MultiPoint');
+select 'T6', addtopogeometrycolumn('tt','public','feature',
+ 'tg6','ST_MultiLineString');
+select 'T7', addtopogeometrycolumn('tt','public','feature',
+ 'tg7','ST_MultiPolygon');
+select 'T8', addtopogeometrycolumn('tt','public','feature',
+ 'tg8','GEOMETRYCOLLECTION');
+select 'T9', addtopogeometrycolumn('tt','public','feature',
+ 'tg9','PUNtal');
+select 'T10', addtopogeometrycolumn('tt','public','feature',
+ 'tg10','Lineal');
+select 'T11', addtopogeometrycolumn('tt','public','feature',
+ 'tg11','Areal');
+select 'T12', addtopogeometrycolumn('tt','public','feature',
+ 'tg12','GEOMETRY');
+
select l.layer_id, l.schema_name, l.table_name, l.feature_column,
l.feature_type, l.level, l.child_id
from topology.layer l, topology.topology t
ERROR: Child layer 0 does not exist in topology "tt"
T1|1
T2|2
+T3|3
+T4|4
+T5|5
+T6|6
+T7|7
+T8|8
+T9|9
+T10|10
+T11|11
+T12|12
1|public|feature|tg|1|0|
2|public|feature|tg2|2|0|
+3|public|feature|tg3|3|0|
+4|public|feature|tg4|4|0|
+5|public|feature|tg5|1|0|
+6|public|feature|tg6|2|0|
+7|public|feature|tg7|3|0|
+8|public|feature|tg8|4|0|
+9|public|feature|tg9|1|0|
+10|public|feature|tg10|2|0|
+11|public|feature|tg11|3|0|
+12|public|feature|tg12|4|0|
Topology 'tt' dropped
RAISE EXCEPTION 'Topology % does not exist', toponame;
END IF;
- IF ltype = 'POINT' THEN
+ IF ltype ILIKE '%POINT%' OR ltype ILIKE 'PUNTAL' THEN
intltype = 1;
- ELSIF ltype = 'LINE' THEN
+ ELSIF ltype ILIKE '%LINE%' OR ltype ILIKE 'LINEAL' THEN
intltype = 2;
- ELSIF ltype = 'POLYGON' THEN
+ ELSIF ltype ILIKE '%POLYGON%' OR ltype ILIKE 'AREAL' THEN
intltype = 3;
- ELSIF ltype = 'COLLECTION' THEN
+ ELSIF ltype ILIKE '%COLLECTION%' OR ltype ILIKE 'GEOMETRY' THEN
intltype = 4;
ELSE
RAISE EXCEPTION 'Layer type must be one of POINT,LINE,POLYGON,COLLECTION';