Changeset: 85babf396b8f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/85babf396b8f Added Files: geom/sql/functions/Tests/ST_Collect-3.12.test geom/sql/functions/Tests/ST_Transform-3.12.reqtests geom/sql/functions/Tests/ST_Transform-3.12.test Modified Files: geom/sql/functions/Tests/All Branch: default Log Message:
Deal with version 3.12 of the geos library. diffs (271 lines): diff --git a/geom/sql/functions/Tests/All b/geom/sql/functions/Tests/All --- a/geom/sql/functions/Tests/All +++ b/geom/sql/functions/Tests/All @@ -13,7 +13,8 @@ HAVE_GEOM&GEOS_VERSION>=3.12.0?ST_GeomFr HAVE_GEOM?dropTestWKT HAVE_GEOM?ST_MakePoint -HAVE_GEOM?ST_Collect +HAVE_GEOM&!GEOS_VERSION>=3.12.0?ST_Collect +HAVE_GEOM&GEOS_VERSION>=3.12.0?ST_Collect-3.12 HAVE_GEOM?ST_MakeLine HAVE_GEOM?loadTestPolygons HAVE_GEOM?ST_Intersects @@ -91,6 +92,7 @@ HAVE_GEOM?ST_MakeBox2D HAVE_GEOM?dropTestGeometries HAVE_GEOM?ST_DWithin2 -HAVE_GEOM?ST_Transform +HAVE_GEOM&!GEOS_VERSION>=3.12.0?ST_Transform +HAVE_GEOM&GEOS_VERSION>=3.12.0?ST_Transform-3.12 HAVE_GEOM?geomcasts diff --git a/geom/sql/functions/Tests/ST_Collect-3.12.test b/geom/sql/functions/Tests/ST_Collect-3.12.test new file mode 100644 --- /dev/null +++ b/geom/sql/functions/Tests/ST_Collect-3.12.test @@ -0,0 +1,185 @@ +# column aggregation + +## points +query T rowsort +SELECT + ST_COLLECT(pts) +FROM ( + VALUES + (ST_GeomFromText('POINT(1 1)')), + (ST_GeomFromText('POINT(2 2)')) +) AS REL(pts) +---- +MULTIPOINT ((1 1), (2 2)) + +## lines +query T rowsort +SELECT + ST_COLLECT(lns) +FROM ( + VALUES + (ST_GeomFromText('LINESTRING(10 20, 30 40, 60 40, 10 20)')), + (ST_GeomFromText('LINESTRING(10 10, 50 50)')) +) AS REL(lns) +---- +MULTILINESTRING ((10 20, 30 40, 60 40, 10 20), (10 10, 50 50)) + +## polygons +query T rowsort +SELECT + ST_COLLECT(pgs) +FROM ( + VALUES + (ST_GeomFromText('POLYGON((10 10, 30 40, 50 50, 40 30, 10 10))')), + (ST_GeomFromText('POLYGON( EMPTY )')), + (ST_GeomFromText('POLYGON((30 30, 30 50, 50 30, 30 30))')) +) AS REL(pgs) +---- +MULTIPOLYGON (((10 10, 30 40, 50 50, 40 30, 10 10)), EMPTY, ((30 30, 30 50, 50 30, 30 30))) + +## multi-types +query T rowsort +SELECT + ST_COLLECT(pgs) +FROM ( + VALUES + (ST_GeomFromText('MULTIPOLYGON (((10 10, 30 40, 50 50, 40 30, 10 10)), EMPTY, ((30 30, 30 50, 50 30, 30 30)))')), + (ST_GeomFromText('MULTILINESTRING ((10 20, 30 40, 60 40, 10 20), (10 10, 50 50))')), + (ST_GeomFromText('POLYGON((30 30, 30 50, 50 30, 30 30))')) +) AS REL(pgs) +---- +GEOMETRYCOLLECTION (MULTIPOLYGON (((10 10, 30 40, 50 50, 40 30, 10 10)), EMPTY, ((30 30, 30 50, 50 30, 30 30))), MULTILINESTRING ((10 20, 30 40, 60 40, 10 20), (10 10, 50 50)), POLYGON ((30 30, 30 50, 50 30, 30 30))) + +query T rowsort +SELECT + ST_COLLECT(pgs) +FROM ( + VALUES + (ST_GeomFromText('MULTIPOLYGON (((10 10, 30 40, 50 50, 40 30, 10 10)), EMPTY, ((30 30, 30 50, 50 30, 30 30)))')), + (ST_GeomFromText('MULTIPOLYGON (((10 10, 30 40, 50 50, 40 30, 10 10)))')), + (ST_GeomFromText('MULTIPOLYGON( EMPTY )')) +) AS REL(pgs) +---- +GEOMETRYCOLLECTION (MULTIPOLYGON (((10 10, 30 40, 50 50, 40 30, 10 10)), EMPTY, ((30 30, 30 50, 50 30, 30 30))), MULTIPOLYGON (((10 10, 30 40, 50 50, 40 30, 10 10))), MULTIPOLYGON EMPTY) + +# per row aggregation + +## points-points +query T rowsort +SELECT + ST_COLLECT(p1, p2) AS points +FROM ( + VALUES + ( + ST_GeomFromText('POINT(1 2)'), + ST_GeomFromText('POINT(3 4)') + ), + ( + ST_GeomFromText('POINT(10 20)'), + ST_GeomFromText('POINT(30 40)') + ) +) AS REL(p1, p2) +---- +MULTIPOINT ((1 2), (3 4)) +MULTIPOINT ((10 20), (30 40)) + +## points-lines +query T rowsort +SELECT + ST_COLLECT(p1, p2) AS points +FROM ( + VALUES + ( + ST_GeomFromText('POINT(1 2)'), + ST_GeomFromText('LINESTRING(10 20, 30 40, 60 40, 10 20)') + ), + ( + ST_GeomFromText('POINT(10 20)'), + ST_GeomFromText('LINESTRING(10 10, 50 50)') + ) +) AS REL(p1, p2) +---- +GEOMETRYCOLLECTION (POINT (1 2), LINESTRING (10 20, 30 40, 60 40, 10 20)) +GEOMETRYCOLLECTION (POINT (10 20), LINESTRING (10 10, 50 50)) + +## points-polygons +query T rowsort +SELECT + ST_COLLECT(p1, p2) AS points +FROM ( + VALUES + ( + ST_GeomFromText('POINT(1 2)'), + ST_GeomFromText('POLYGON( EMPTY )') + ), + ( + ST_GeomFromText('POINT(10 20)'), + ST_GeomFromText('POLYGON((10 10, 30 40, 50 50, 40 30, 10 10))') + ) +) AS REL(p1, p2) +---- +GEOMETRYCOLLECTION (POINT (1 2), POLYGON EMPTY) +GEOMETRYCOLLECTION (POINT (10 20), POLYGON ((10 10, 30 40, 50 50, 40 30, 10 10))) + +## lines-lines +query T rowsort +SELECT + ST_COLLECT(p1, p2) AS points +FROM ( + VALUES + ( + ST_GeomFromText('LINESTRING(0 0, 30 30, 40 40)'), + ST_GeomFromText('LINESTRING(10 20, 30 40, 60 40, 10 20)') + ), + ( + ST_GeomFromText('LINESTRING(10 20, 30 40, 60 40, 10 20)'), + ST_GeomFromText('LINESTRING(10 10, 50 50)') + ) +) AS REL(p1, p2) +---- +MULTILINESTRING ((0 0, 30 30, 40 40), (10 20, 30 40, 60 40, 10 20)) +MULTILINESTRING ((10 20, 30 40, 60 40, 10 20), (10 10, 50 50)) + +## lines-polygons +query T rowsort +SELECT + ST_COLLECT(p1, p2) AS points +FROM ( + VALUES + ( + ST_GeomFromText('LINESTRING(0 0, 30 30, 40 40)'), + ST_GeomFromText('POLYGON( EMPTY )') + ), + ( + ST_GeomFromText('LINESTRING(10 20, 30 40, 60 40, 10 20)'), + ST_GeomFromText('POLYGON((10 10, 30 40, 50 50, 40 30, 10 10))') + ), + ( + ST_GeomFromText('LINESTRING(0 0, 1 1)'), + ST_GeomFromText('POLYGON((10 10, 30 40, 50 50, 40 30, 10 10))') + ) +) AS REL(p1, p2) +---- +GEOMETRYCOLLECTION (LINESTRING (0 0, 1 1), POLYGON ((10 10, 30 40, 50 50, 40 30, 10 10))) +GEOMETRYCOLLECTION (LINESTRING (0 0, 30 30, 40 40), POLYGON EMPTY) +GEOMETRYCOLLECTION (LINESTRING (10 20, 30 40, 60 40, 10 20), POLYGON ((10 10, 30 40, 50 50, 40 30, 10 10))) + +## polygons-polygons +query T rowsort +SELECT + ST_COLLECT(p1, p2) AS points +FROM ( + VALUES + ( + ST_GeomFromText('POLYGON((10 10, 30 40, 50 50, 40 30, 10 10))'), + ST_GeomFromText('POLYGON( EMPTY )') + ), + ( + ST_GeomFromText('POLYGON((30 30, 30 50, 50 30, 30 30))'), + ST_GeomFromText('POLYGON((30 20, 40 50, 50 30, 50 50, 30 20))') + ) +) AS REL(p1, p2) +---- +MULTIPOLYGON (((10 10, 30 40, 50 50, 40 30, 10 10)), EMPTY) +MULTIPOLYGON (((30 30, 30 50, 50 30, 30 30)), ((30 20, 40 50, 50 30, 50 50, 30 20))) + diff --git a/geom/sql/functions/Tests/ST_Transform-3.12.reqtests b/geom/sql/functions/Tests/ST_Transform-3.12.reqtests new file mode 100644 --- /dev/null +++ b/geom/sql/functions/Tests/ST_Transform-3.12.reqtests @@ -0,0 +1,1 @@ +loadTestGeometries diff --git a/geom/sql/functions/Tests/ST_Transform-3.12.test b/geom/sql/functions/Tests/ST_Transform-3.12.test new file mode 100644 --- /dev/null +++ b/geom/sql/functions/Tests/ST_Transform-3.12.test @@ -0,0 +1,48 @@ +# Point from 4326 to 4326 +query T rowsort +SELECT ST_AsText(ST_Transform(st_setsrid(st_pointfromtext('POINT (-4.4657183 48.38249)'), 4326), 4326)) +---- +POINT (-4.4657183 48.38249) + +# Point from 4326 to 3035 +query T rowsort +SELECT ST_AsText(ST_Transform(st_setsrid(st_pointfromtext('POINT (-4.4657183 48.38249)'), 4326), 3035)) +---- +POINT (3256910.236847341 2912495.4152792906) + +# MultiPoint from 4326 to 3035 +query T rowsort +SELECT ST_AsText(ST_Transform(st_setsrid(st_geomfromtext('MULTIPOINT (-4.4657183 48.38249, -4.4965715 48.38242, -4.644325 48.092247, -4.4851084 48.38132, -4.4954414 48.38366, -4.347825 48.117958, -4.7691517 47.987152, -4.4719133 48.16634, -4.782632 48.005634, -4.46572 48.382507)'), 4326), 3035)) +---- +MULTIPOINT ((3256910.236847341 2912495.4152792906), (3254672.9232832035 2912934.464415785), (3237755.624311555 2883346.764096317), (3255480.2556084394 2912648.0202165362), (3254781.139009903 2913053.7668744745), (3259904.442835956 2881843.1157471547), (3226399.412122161 2873698.5144423316), (3251885.3356214464 2888932.855248591), (3225814.1034443 2875919.873412735), (3256910.4738176083 2912497.300134165)) + +# Linestring from 4326 to 3035 +query T rowsort +SELECT ST_AsText(ST_Transform(st_setsrid(st_linefromtext('LINESTRING (-5.6873484 48.344147, -5.6681333 48.33428, -5.6679835 48.33422, -5.66766 48.33412)'), 4326), 3035)) +---- +LINESTRING (3167671.8168278513 2926719.292472556, 3168833.765553358 2925341.3530472373, 3168843.2145084543 2925332.4584952043, 3168864.2978334744 2925316.4775951537) + +# MultiLinestring from 4326 to 3035 +query T rowsort +SELECT ST_AsText(ST_Transform(st_setsrid(st_geomfromtext('MULTILINESTRING ((-5.6873484 48.344147, -5.6681333 48.33428), (-5.6681333 48.33428, -5.6679835 48.33422), (-5.6679835 48.33422, -5.66766 48.33412))'), 4326), 3035)) +---- +MULTILINESTRING ((3167671.8168278513 2926719.292472556, 3168833.765553358 2925341.3530472373), (3168833.765553358 2925341.3530472373, 3168843.2145084543 2925332.4584952043), (3168843.2145084543 2925332.4584952043, 3168864.2978334744 2925316.4775951537)) + +# Polygon from 4326 to 3035 +query T rowsort +SELECT ST_AsText(ST_Transform(st_setsrid(st_polygonfromtext('POLYGON ((-70 35, -70 39, -65 39, -65 35, -70 35))'), 4326), 3035)) +---- +POLYGON ((-1551336.6886370108 4960140.610519264, -1181855.207118743 5226023.370006166, -1007637.697308938 4831052.145729965, -1359624.1787992017 4542397.806396248, -1551336.6886370108 4960140.610519264)) + +# MultiPolygon from 4326 to 3035 +query T rowsort +SELECT ST_AsText(ST_Transform(st_setsrid(st_geomfromtext('MULTIPOLYGON (((-20 -50, -20 -40, 30 -40, 30 -50, -20 -50)), ((30 -50, 30 -45, 40 -45, 40 -50, 30 -50)))'), 4326), 3035)) +---- +MULTIPOLYGON (((951463.5890125036 -6309234.415106328, 687127.3565636296 -5482088.556344701, 6760173.911872292 -5732283.7683529835, 6581741.604272356 -6509599.735591641, 951463.5890125036 -6309234.415106328)), ((6581741.604272356 -6509599.735591641, 6682271.808015617 -6128844.200428242, 7839821.83702993 -5902264.746195812, 7690536.410987496 -6309234.415106328, 6581741.604272356 -6509599.735591641))) + +# GeometryCollection from 4326 to 3035 +# TODO: Not yet supported +#query T rowsort +#SELECT ST_AsText(ST_Transform(st_setsrid(st_geomfromtext('GEOMETRYCOLLECTION (POLYGON ((-20 -50, -20 -40, 30 -40, 30 -50, -20 -50)), POLYGON ((30 -50, 30 -45, 40 -45, 40 -50, 30 -50)), MULTIPOINT (-4.4657183 48.38249, -4.4965715 48.38242, -4.644325 48.092247))'), 4326), 3035)) +#---- +#GEOMETRYCOLLECTION (POLYGON ((951463.5890125036 -6309234.415106328, 687127.3565636296 -5482088.556344701, 6760173.911872292 -5732283.768352984, 6581741.604272356 -6509599.735591641, 951463.5890125036 -6309234.415106328)), POLYGON((6581741.604272356 -6509599.735591641, 6682271.808015617 -6128844.200428242, 7839821.83702993 -5902264.746195812, 7690536.410987496 -6309234.415106328, 6581741.604272356 -6509599.735591641)), MULTIPOINT (3256910.236847341 2912495.415279291, 3254672.923283204 2912934.464415785, 3237755.624311555 2883346.764096317)) _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org