47 LWGEOM *lwgeom_in, *lwgeom_out;
49 in = PG_GETARG_GSERIALIZED_P_COPY(0);
52 switch ( lwgeom_in->
type )
64 lwpgerror(
"ST_MakeValid: unsupported geometry type %s",
70 if(PG_NARGS() > 1 && ! PG_ARGISNULL(1)) {
71 char *make_valid_params_str = text_to_cstring(PG_GETARG_TEXT_P(1));
80 PG_FREE_IF_COPY(in, 0);
84 out = geometry_serialize(lwgeom_out);
85 if ( lwgeom_out != lwgeom_in ) {
88 PG_FREE_IF_COPY(in, 0);
90 PG_RETURN_POINTER(out);
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
LWGEOM * lwgeom_make_valid_params(LWGEOM *geom, char *make_valid_params)
void lwgeom_free(LWGEOM *geom)
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
LWGEOM * lwgeom_make_valid(LWGEOM *geom)
Attempts to make an invalid geometries valid w/out losing points.