]> granicus.if.org Git - postgis/commitdiff
ST_MakeValid: Early fail if an unsupported type is given
authorSandro Santilli <strk@keybit.net>
Mon, 3 May 2010 16:35:08 +0000 (16:35 +0000)
committerSandro Santilli <strk@keybit.net>
Mon, 3 May 2010 16:35:08 +0000 (16:35 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@5604 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/lwgeom_geos_clean.c

index 982fa9c5b6ec5c8ddd617d60041a37528d65fee5..94b8d085b32d7e6f07c9d5ecdd1087206139078b 100644 (file)
@@ -994,6 +994,21 @@ Datum ST_MakeValid(PG_FUNCTION_ARGS)
        in = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
        lwgeom_in = lwgeom_deserialize(SERIALIZED_FORM(in));
 
+       switch ( TYPE_GETTYPE(lwgeom_in->type) )
+       {
+               case GEOS_LINESTRING:
+               case GEOS_POLYGON:
+               case GEOS_MULTILINESTRING:
+               case GEOS_MULTIPOLYGON:
+                       break;
+
+               default:
+                       lwerror("ST_MakeValid: unsupported geometry type %s",
+                               lwtype_name(TYPE_GETTYPE(lwgeom_in->type)));
+                       PG_RETURN_NULL();
+                       break;
+       }
+
        lwgeom_out = lwgeom_make_valid(lwgeom_in);
        if ( ! lwgeom_out ) {
                PG_FREE_IF_COPY(in, 0);