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
This commit is contained in:
Sandro Santilli 2010-05-03 16:35:08 +00:00
parent 8838ea7328
commit b8cd10bfca

View 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);