PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ isvalidreason()

Datum isvalidreason ( PG_FUNCTION_ARGS  )

Definition at line 1625 of file postgis/lwgeom_geos.c.

1626{
1627 GSERIALIZED *geom = NULL;
1628 char *reason_str = NULL;
1629 text *result = NULL;
1630 const GEOSGeometry *g1 = NULL;
1631
1632 geom = PG_GETARG_GSERIALIZED_P(0);
1633
1634 initGEOS(lwpgnotice, lwgeom_geos_error);
1635
1636 g1 = POSTGIS2GEOS(geom);
1637 if ( g1 )
1638 {
1639 reason_str = GEOSisValidReason(g1);
1640 GEOSGeom_destroy((GEOSGeometry *)g1);
1641 if (!reason_str) HANDLE_GEOS_ERROR("GEOSisValidReason");
1642 result = cstring_to_text(reason_str);
1643 GEOSFree(reason_str);
1644 }
1645 else
1646 {
1647 result = cstring_to_text(lwgeom_geos_errmsg);
1648 }
1649
1650 PG_FREE_IF_COPY(geom, 0);
1651 PG_RETURN_POINTER(result);
1652}
char result[OUT_DOUBLE_BUFFER_SIZE]
Definition cu_print.c:267
char lwgeom_geos_errmsg[LWGEOM_GEOS_ERRMSG_MAXSIZE]
void lwgeom_geos_error(const char *fmt,...)
GEOSGeometry * POSTGIS2GEOS(const GSERIALIZED *pglwgeom)
#define HANDLE_GEOS_ERROR(label)

References HANDLE_GEOS_ERROR, lwgeom_geos_errmsg, lwgeom_geos_error(), POSTGIS2GEOS(), and result.

Here is the call graph for this function: