433 if ( (PG_NARGS()>1) && (!PG_ARGISNULL(1)) )
435 type = PG_GETARG_TEXT_P(1);
437 if ( ! strncmp(VARDATA(
type),
"xdr", 3) ||
438 ! strncmp(VARDATA(
type),
"XDR", 3) )
447 wkb_size= VARSIZE(geom) - VARHDRSZ;
455 result = palloc(wkb_size + VARHDRSZ);
456 memcpy(VARDATA(result), wkb, wkb_size);
457 SET_VARSIZE(result, wkb_size+VARHDRSZ);
461 PG_FREE_IF_COPY(geom, 0);
462 PG_RETURN_BYTEA_P(result);
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void lwgeom_free(LWGEOM *geom)
uint8_t * lwgeom_to_wkb(const LWGEOM *geom, uint8_t variant, size_t *size_out)
Convert LWGEOM to a char* in WKB format.