From: Sandro Santilli Date: Mon, 3 May 2010 16:35:08 +0000 (+0000) Subject: ST_MakeValid: Early fail if an unsupported type is given X-Git-Tag: 2.0.0alpha1~3005 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b8cd10bfcac920119d0e8d298d07d9e3c8fb555e;p=postgis ST_MakeValid: Early fail if an unsupported type is given git-svn-id: http://svn.osgeo.org/postgis/trunk@5604 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/postgis/lwgeom_geos_clean.c b/postgis/lwgeom_geos_clean.c index 982fa9c5b..94b8d085b 100644 --- a/postgis/lwgeom_geos_clean.c +++ b/postgis/lwgeom_geos_clean.c @@ -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);