]> granicus.if.org Git - postgis/commitdiff
First draft of a test for typmod (#1085)
authorSandro Santilli <strk@keybit.net>
Fri, 13 Jan 2012 17:33:26 +0000 (17:33 +0000)
committerSandro Santilli <strk@keybit.net>
Fri, 13 Jan 2012 17:33:26 +0000 (17:33 +0000)
This version simply creates the tables and checks geometry_columns.
Should be enhanced to test effectiveness of constraints.

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

regress/Makefile.in
regress/typmod.sql [new file with mode: 0644]
regress/typmod_expected [new file with mode: 0644]

index 2bc0ddb21d88a5bc08e508ee8cb909dc4a4aae44..a3fcae95e3cafd20b0dc26efd959867d97b8a3a9 100644 (file)
@@ -87,6 +87,7 @@ TESTS = \
        wkt \
        wkb \
        tickets \
+       typmod \
        remove_repeated_points \
        split \
        relate \
diff --git a/regress/typmod.sql b/regress/typmod.sql
new file mode 100644 (file)
index 0000000..3eefba4
--- /dev/null
@@ -0,0 +1,103 @@
+SET client_min_messages TO warning;
+
+CREATE SCHEMA tm;
+
+-- Test construction of typed tables
+
+CREATE TABLE tm.geometrycollection (a int, g geometry(geometrycollection) );
+CREATE TABLE tm.geometrycollection0 (a int, g geometry(geometrycollection, 0) );
+CREATE TABLE tm.geometrycollection1 (a int, g geometry(geometrycollection, 1) );
+CREATE TABLE tm.geometrycollectionm (a int, g geometry(geometrycollectionm) );
+CREATE TABLE tm.geometrycollectionm0 (a int, g geometry(geometrycollectionm, 0) );
+CREATE TABLE tm.geometrycollectionm1 (a int, g geometry(geometrycollectionm, 1) );
+CREATE TABLE tm.geometrycollectionz (a int, g geometry(geometrycollectionz) );
+CREATE TABLE tm.geometrycollectionz0 (a int, g geometry(geometrycollectionz, 0) );
+CREATE TABLE tm.geometrycollectionz1 (a int, g geometry(geometrycollectionz, 1) );
+CREATE TABLE tm.geometrycollectionzm (a int, g geometry(geometrycollectionzm) );
+CREATE TABLE tm.geometrycollectionzm0 (a int, g geometry(geometrycollectionzm, 0) );
+CREATE TABLE tm.geometrycollectionzm1 (a int, g geometry(geometrycollectionzm, 1) );
+
+CREATE TABLE tm.linestring (a int, g geometry(linestring) );
+CREATE TABLE tm.linestring0 (a int, g geometry(linestring, 0) );
+CREATE TABLE tm.linestring1 (a int, g geometry(linestring, 1) );
+CREATE TABLE tm.linestringm (a int, g geometry(linestringm) );
+CREATE TABLE tm.linestringm0 (a int, g geometry(linestringm, 0) );
+CREATE TABLE tm.linestringm1 (a int, g geometry(linestringm, 1) );
+CREATE TABLE tm.linestringz (a int, g geometry(linestringz) );
+CREATE TABLE tm.linestringz0 (a int, g geometry(linestringz, 0) );
+CREATE TABLE tm.linestringz1 (a int, g geometry(linestringz, 1) );
+CREATE TABLE tm.linestringzm (a int, g geometry(linestringzm) );
+CREATE TABLE tm.linestringzm0 (a int, g geometry(linestringzm, 0) );
+CREATE TABLE tm.linestringzm1 (a int, g geometry(linestringzm, 1) );
+
+CREATE TABLE tm.multilinestring (a int, g geometry(multilinestring) );
+CREATE TABLE tm.multilinestring0 (a int, g geometry(multilinestring, 0) );
+CREATE TABLE tm.multilinestring1 (a int, g geometry(multilinestring, 1) );
+CREATE TABLE tm.multilinestringm (a int, g geometry(multilinestringm) );
+CREATE TABLE tm.multilinestringm0 (a int, g geometry(multilinestringm, 0) );
+CREATE TABLE tm.multilinestringm1 (a int, g geometry(multilinestringm, 1) );
+CREATE TABLE tm.multilinestringz (a int, g geometry(multilinestringz) );
+CREATE TABLE tm.multilinestringz0 (a int, g geometry(multilinestringz, 0) );
+CREATE TABLE tm.multilinestringz1 (a int, g geometry(multilinestringz, 1) );
+CREATE TABLE tm.multilinestringzm (a int, g geometry(multilinestringzm) );
+CREATE TABLE tm.multilinestringzm0 (a int, g geometry(multilinestringzm, 0) );
+CREATE TABLE tm.multilinestringzm1 (a int, g geometry(multilinestringzm, 1) );
+
+CREATE TABLE tm.multipolygon (a int, g geometry(multipolygon) );
+CREATE TABLE tm.multipolygon0 (a int, g geometry(multipolygon, 0) );
+CREATE TABLE tm.multipolygon1 (a int, g geometry(multipolygon, 1) );
+CREATE TABLE tm.multipolygonm (a int, g geometry(multipolygonm) );
+CREATE TABLE tm.multipolygonm0 (a int, g geometry(multipolygonm, 0) );
+CREATE TABLE tm.multipolygonm1 (a int, g geometry(multipolygonm, 1) );
+CREATE TABLE tm.multipolygonz (a int, g geometry(multipolygonz) );
+CREATE TABLE tm.multipolygonz0 (a int, g geometry(multipolygonz, 0) );
+CREATE TABLE tm.multipolygonz1 (a int, g geometry(multipolygonz, 1) );
+CREATE TABLE tm.multipolygonzm (a int, g geometry(multipolygonzm) );
+CREATE TABLE tm.multipolygonzm0 (a int, g geometry(multipolygonzm, 0) );
+CREATE TABLE tm.multipolygonzm1 (a int, g geometry(multipolygonzm, 1) );
+
+CREATE TABLE tm.multipoint (a int, g geometry(multipoint) );
+CREATE TABLE tm.multipoint0 (a int, g geometry(multipoint, 0) );
+CREATE TABLE tm.multipoint1 (a int, g geometry(multipoint, 1) );
+CREATE TABLE tm.multipointm (a int, g geometry(multipointm) );
+CREATE TABLE tm.multipointm0 (a int, g geometry(multipointm, 0) );
+CREATE TABLE tm.multipointm1 (a int, g geometry(multipointm, 1) );
+CREATE TABLE tm.multipointz (a int, g geometry(multipointz) );
+CREATE TABLE tm.multipointz0 (a int, g geometry(multipointz, 0) );
+CREATE TABLE tm.multipointz1 (a int, g geometry(multipointz, 1) );
+CREATE TABLE tm.multipointzm (a int, g geometry(multipointzm) );
+CREATE TABLE tm.multipointzm0 (a int, g geometry(multipointzm, 0) );
+CREATE TABLE tm.multipointzm1 (a int, g geometry(multipointzm, 1) );
+
+CREATE TABLE tm.point (a int, g geometry(point) );
+CREATE TABLE tm.point0 (a int, g geometry(point, 0) );
+CREATE TABLE tm.point1 (a int, g geometry(point, 1) );
+CREATE TABLE tm.pointm (a int, g geometry(pointm) );
+CREATE TABLE tm.pointm0 (a int, g geometry(pointm, 0) );
+CREATE TABLE tm.pointm1 (a int, g geometry(pointm, 1) );
+CREATE TABLE tm.pointz (a int, g geometry(pointz) );
+CREATE TABLE tm.pointz0 (a int, g geometry(pointz, 0) );
+CREATE TABLE tm.pointz1 (a int, g geometry(pointz, 1) );
+CREATE TABLE tm.pointzm (a int, g geometry(pointzm) );
+CREATE TABLE tm.pointzm0 (a int, g geometry(pointzm, 0) );
+CREATE TABLE tm.pointzm1 (a int, g geometry(pointzm, 1) );
+
+CREATE TABLE tm.polygon (a int, g geometry(polygon) );
+CREATE TABLE tm.polygon0 (a int, g geometry(polygon, 0) );
+CREATE TABLE tm.polygon1 (a int, g geometry(polygon, 1) );
+CREATE TABLE tm.polygonm (a int, g geometry(polygonm) );
+CREATE TABLE tm.polygonm0 (a int, g geometry(polygonm, 0) );
+CREATE TABLE tm.polygonm1 (a int, g geometry(polygonm, 1) );
+CREATE TABLE tm.polygonz (a int, g geometry(polygonz) );
+CREATE TABLE tm.polygonz0 (a int, g geometry(polygonz, 0) );
+CREATE TABLE tm.polygonz1 (a int, g geometry(polygonz, 1) );
+CREATE TABLE tm.polygonzm (a int, g geometry(polygonzm) );
+CREATE TABLE tm.polygonzm0 (a int, g geometry(polygonzm, 0) );
+CREATE TABLE tm.polygonzm1 (a int, g geometry(polygonzm, 1) );
+
+SELECT * from geometry_columns ORDER BY 3;
+
+-- TODO: test that you can only insert compatible types
+
+DROP SCHEMA tm CASCADE;
+
diff --git a/regress/typmod_expected b/regress/typmod_expected
new file mode 100644 (file)
index 0000000..af868cd
--- /dev/null
@@ -0,0 +1,84 @@
+postgis_reg|tm|geometrycollection|g|2|0|GEOMETRYCOLLECTION
+postgis_reg|tm|geometrycollection0|g|2|0|GEOMETRYCOLLECTION
+postgis_reg|tm|geometrycollection1|g|2|1|GEOMETRYCOLLECTION
+postgis_reg|tm|geometrycollectionm|g|3|0|GEOMETRYCOLLECTIONM
+postgis_reg|tm|geometrycollectionm0|g|3|0|GEOMETRYCOLLECTIONM
+postgis_reg|tm|geometrycollectionm1|g|3|1|GEOMETRYCOLLECTIONM
+postgis_reg|tm|geometrycollectionz|g|3|0|GEOMETRYCOLLECTION
+postgis_reg|tm|geometrycollectionz0|g|3|0|GEOMETRYCOLLECTION
+postgis_reg|tm|geometrycollectionz1|g|3|1|GEOMETRYCOLLECTION
+postgis_reg|tm|geometrycollectionzm|g|4|0|GEOMETRYCOLLECTION
+postgis_reg|tm|geometrycollectionzm0|g|4|0|GEOMETRYCOLLECTION
+postgis_reg|tm|geometrycollectionzm1|g|4|1|GEOMETRYCOLLECTION
+postgis_reg|tm|linestring|g|2|0|LINESTRING
+postgis_reg|tm|linestring0|g|2|0|LINESTRING
+postgis_reg|tm|linestring1|g|2|1|LINESTRING
+postgis_reg|tm|linestringm|g|3|0|LINESTRINGM
+postgis_reg|tm|linestringm0|g|3|0|LINESTRINGM
+postgis_reg|tm|linestringm1|g|3|1|LINESTRINGM
+postgis_reg|tm|linestringz|g|3|0|LINESTRING
+postgis_reg|tm|linestringz0|g|3|0|LINESTRING
+postgis_reg|tm|linestringz1|g|3|1|LINESTRING
+postgis_reg|tm|linestringzm|g|4|0|LINESTRING
+postgis_reg|tm|linestringzm0|g|4|0|LINESTRING
+postgis_reg|tm|linestringzm1|g|4|1|LINESTRING
+postgis_reg|tm|multilinestring|g|2|0|MULTILINESTRING
+postgis_reg|tm|multilinestring0|g|2|0|MULTILINESTRING
+postgis_reg|tm|multilinestring1|g|2|1|MULTILINESTRING
+postgis_reg|tm|multilinestringm|g|3|0|MULTILINESTRINGM
+postgis_reg|tm|multilinestringm0|g|3|0|MULTILINESTRINGM
+postgis_reg|tm|multilinestringm1|g|3|1|MULTILINESTRINGM
+postgis_reg|tm|multilinestringz|g|3|0|MULTILINESTRING
+postgis_reg|tm|multilinestringz0|g|3|0|MULTILINESTRING
+postgis_reg|tm|multilinestringz1|g|3|1|MULTILINESTRING
+postgis_reg|tm|multilinestringzm|g|4|0|MULTILINESTRING
+postgis_reg|tm|multilinestringzm0|g|4|0|MULTILINESTRING
+postgis_reg|tm|multilinestringzm1|g|4|1|MULTILINESTRING
+postgis_reg|tm|multipoint|g|2|0|MULTIPOINT
+postgis_reg|tm|multipoint0|g|2|0|MULTIPOINT
+postgis_reg|tm|multipoint1|g|2|1|MULTIPOINT
+postgis_reg|tm|multipointm|g|3|0|MULTIPOINTM
+postgis_reg|tm|multipointm0|g|3|0|MULTIPOINTM
+postgis_reg|tm|multipointm1|g|3|1|MULTIPOINTM
+postgis_reg|tm|multipointz|g|3|0|MULTIPOINT
+postgis_reg|tm|multipointz0|g|3|0|MULTIPOINT
+postgis_reg|tm|multipointz1|g|3|1|MULTIPOINT
+postgis_reg|tm|multipointzm|g|4|0|MULTIPOINT
+postgis_reg|tm|multipointzm0|g|4|0|MULTIPOINT
+postgis_reg|tm|multipointzm1|g|4|1|MULTIPOINT
+postgis_reg|tm|multipolygon|g|2|0|MULTIPOLYGON
+postgis_reg|tm|multipolygon0|g|2|0|MULTIPOLYGON
+postgis_reg|tm|multipolygon1|g|2|1|MULTIPOLYGON
+postgis_reg|tm|multipolygonm|g|3|0|MULTIPOLYGONM
+postgis_reg|tm|multipolygonm0|g|3|0|MULTIPOLYGONM
+postgis_reg|tm|multipolygonm1|g|3|1|MULTIPOLYGONM
+postgis_reg|tm|multipolygonz|g|3|0|MULTIPOLYGON
+postgis_reg|tm|multipolygonz0|g|3|0|MULTIPOLYGON
+postgis_reg|tm|multipolygonz1|g|3|1|MULTIPOLYGON
+postgis_reg|tm|multipolygonzm|g|4|0|MULTIPOLYGON
+postgis_reg|tm|multipolygonzm0|g|4|0|MULTIPOLYGON
+postgis_reg|tm|multipolygonzm1|g|4|1|MULTIPOLYGON
+postgis_reg|tm|point|g|2|0|POINT
+postgis_reg|tm|point0|g|2|0|POINT
+postgis_reg|tm|point1|g|2|1|POINT
+postgis_reg|tm|pointm|g|3|0|POINTM
+postgis_reg|tm|pointm0|g|3|0|POINTM
+postgis_reg|tm|pointm1|g|3|1|POINTM
+postgis_reg|tm|pointz|g|3|0|POINT
+postgis_reg|tm|pointz0|g|3|0|POINT
+postgis_reg|tm|pointz1|g|3|1|POINT
+postgis_reg|tm|pointzm|g|4|0|POINT
+postgis_reg|tm|pointzm0|g|4|0|POINT
+postgis_reg|tm|pointzm1|g|4|1|POINT
+postgis_reg|tm|polygon|g|2|0|POLYGON
+postgis_reg|tm|polygon0|g|2|0|POLYGON
+postgis_reg|tm|polygon1|g|2|1|POLYGON
+postgis_reg|tm|polygonm|g|3|0|POLYGONM
+postgis_reg|tm|polygonm0|g|3|0|POLYGONM
+postgis_reg|tm|polygonm1|g|3|1|POLYGONM
+postgis_reg|tm|polygonz|g|3|0|POLYGON
+postgis_reg|tm|polygonz0|g|3|0|POLYGON
+postgis_reg|tm|polygonz1|g|3|1|POLYGON
+postgis_reg|tm|polygonzm|g|4|0|POLYGON
+postgis_reg|tm|polygonzm0|g|4|0|POLYGON
+postgis_reg|tm|polygonzm1|g|4|1|POLYGON