]> granicus.if.org Git - postgis/commitdiff
Return empty geoms snapped to a grid as immutated (#1089)
authorSandro Santilli <strk@keybit.net>
Wed, 14 Dec 2011 14:37:18 +0000 (14:37 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 14 Dec 2011 14:37:18 +0000 (14:37 +0000)
Also introduces an "empty" regression test

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

postgis/lwgeom_functions_analytic.c
regress/Makefile.in
regress/empty.sql [new file with mode: 0644]
regress/empty_expected [new file with mode: 0644]

index 4354a71956b802eef6cda4e4b535d734f91ac780..45682795b61f85ca2fcacb121b62a28fb6ee7703 100644 (file)
@@ -530,8 +530,8 @@ Datum LWGEOM_snaptogrid(PG_FUNCTION_ARGS)
        /* Do not support gridding Z and M values for now */
        grid.ipz=grid.ipm=grid.zsize=grid.msize=0;
 
-       /* Return input geometry if grid is null */
-       if ( grid_isNull(&grid) )
+       /* Return input geometry if grid is null or input geometry is empty */
+       if ( grid_isNull(&grid) || gserialized_is_empty(in_geom) )
        {
                PG_RETURN_POINTER(in_geom);
        }
index 67e82b9930668d1a3808b955884751ab9a4a8272..d0625da90f18d67d9aafd4f69777728a3e523e08 100644 (file)
@@ -58,6 +58,7 @@ TESTS = \
        snaptogrid \
        summary \
        affine \
+       empty \
        measures \
        long_xact \
        ctors \
diff --git a/regress/empty.sql b/regress/empty.sql
new file mode 100644 (file)
index 0000000..d4e40ea
--- /dev/null
@@ -0,0 +1,3 @@
+SELECT 'T1.1', ST_AsEWKT(ST_SnapToGrid('POINT EMPTY', 1));
+SELECT 'T1.2', ST_AsEWKT(ST_SnapToGrid('LINESTRING EMPTY', 1));
+SELECT 'T1.3', ST_AsEWKT(ST_SnapToGrid('SRID=4326;POLYGON EMPTY', 1));
diff --git a/regress/empty_expected b/regress/empty_expected
new file mode 100644 (file)
index 0000000..7bca4a3
--- /dev/null
@@ -0,0 +1,3 @@
+T1.1|POINT EMPTY
+T1.2|LINESTRING EMPTY
+T1.3|SRID=4326;POLYGON EMPTY