]> granicus.if.org Git - postgis/commitdiff
The box2d of an empty geometry is NULL, not a point. Closes ticket #938 and regress...
authorSandro Santilli <strk@keybit.net>
Wed, 1 Jun 2011 12:31:58 +0000 (12:31 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 1 Jun 2011 12:31:58 +0000 (12:31 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@7307 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/lwgeom_box2dfloat4.c
regress/tickets.sql
regress/tickets_expected

index b330799d20c6bf2369db1278303eb14ba43ec510..0fbca2808e2e4987f15cab0d181bf7a49f65884f 100644 (file)
@@ -143,6 +143,10 @@ Datum LWGEOM_to_BOX2DFLOAT4(PG_FUNCTION_ARGS)
        PG_LWGEOM *lwgeom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
        BOX2DFLOAT4 *result;
 
+       /* Cannot box empty! */
+       if ( pglwgeom_is_empty(lwgeom) )
+               PG_RETURN_NULL(); 
+
        result = palloc(sizeof(BOX2DFLOAT4));
        if ( ! pglwgeom_getbox2d_p(lwgeom, result) )
        {
index adc228e4dd4ff0771815f168a57a5a6496628e8c..cade7fcb8afb9adf7c00508731e3682877ad19fc 100644 (file)
@@ -380,6 +380,8 @@ select '#884', id, ST_Within(
 ST_GeomFromText('POINT (-113.4 35.6)', -1), the_geom
 ) from foo;
 
+select '#938', 'POLYGON EMPTY'::geometry::box2d;
+
 DROP TABLE foo;
 
 -- Clean up
index 59b2c86c31c0fc51e8bd0b3b8b2b5d20e88e5200..607563d8c5fde24afac36c78e0aa16529c2a8589 100644 (file)
@@ -110,3 +110,4 @@ ERROR:  First argument must be a LINESTRING
 #834|GEOMETRYCOLLECTION(POINT(0 0 5),LINESTRING(10 10 5,10 0 5))
 #884|1|f
 #884|2|t
+#938|