PostGIS  3.1.6dev-r@@SVN_REVISION@@

◆ isvalidreason()

Datum isvalidreason ( PG_FUNCTION_ARGS  )

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

1666 {
1667  GSERIALIZED *geom = NULL;
1668  char *reason_str = NULL;
1669  text *result = NULL;
1670  const GEOSGeometry *g1 = NULL;
1671 
1672  geom = PG_GETARG_GSERIALIZED_P(0);
1673 
1674  initGEOS(lwpgnotice, lwgeom_geos_error);
1675 
1676  g1 = POSTGIS2GEOS(geom);
1677  if ( g1 )
1678  {
1679  reason_str = GEOSisValidReason(g1);
1680  GEOSGeom_destroy((GEOSGeometry *)g1);
1681  if (!reason_str) HANDLE_GEOS_ERROR("GEOSisValidReason");
1682  result = cstring_to_text(reason_str);
1683  GEOSFree(reason_str);
1684  }
1685  else
1686  {
1687  result = cstring_to_text(lwgeom_geos_errmsg);
1688  }
1689 
1690  PG_FREE_IF_COPY(geom, 0);
1691  PG_RETURN_POINTER(result);
1692 }
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,...)
#define HANDLE_GEOS_ERROR(label)
GEOSGeometry * POSTGIS2GEOS(const GSERIALIZED *pglwgeom)

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

Here is the call graph for this function: