From 6c3c6a8f7bb2e5c8fe6dfdeabd52285c6d98d309 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Fri, 13 Jan 2012 17:33:26 +0000 Subject: [PATCH] First draft of a test for typmod (#1085) 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 | 1 + regress/typmod.sql | 103 ++++++++++++++++++++++++++++++++++++++++ regress/typmod_expected | 84 ++++++++++++++++++++++++++++++++ 3 files changed, 188 insertions(+) create mode 100644 regress/typmod.sql create mode 100644 regress/typmod_expected diff --git a/regress/Makefile.in b/regress/Makefile.in index 2bc0ddb21..a3fcae95e 100644 --- a/regress/Makefile.in +++ b/regress/Makefile.in @@ -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 index 000000000..3eefba414 --- /dev/null +++ b/regress/typmod.sql @@ -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 index 000000000..af868cd90 --- /dev/null +++ b/regress/typmod_expected @@ -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 -- 2.40.0