412 int32 idx = PG_GETARG_INT32(1);
418 PG_FREE_IF_COPY(geom, 0);
419 elog(ERROR,
"ST_PatchN only supports TIN and PolyhedralSurface geometries");
429 if (subgeom == lwgeom)
430 PG_RETURN_POINTER(geom);
436 result = geometry_serialize(subgeom);
438 PG_FREE_IF_COPY(geom, 0);
439 PG_RETURN_POINTER(
result);
char result[OUT_DOUBLE_BUFFER_SIZE]
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void lwgeom_free(LWGEOM *geom)
int lwgeom_has_patches(const LWGEOM *geom)
void lwgeom_add_bbox(LWGEOM *lwgeom)
Compute a bbox if not already computed.
static LWGEOM * lwgeom_extract_geometry_n(LWGEOM *lwgeom, int32 idx, bool patches_as_geometries)