64{
69 size_t gser_size;
71
72 if (PG_ARGISNULL(0))
73 PG_RETURN_NULL();
74
76 PG_GETARG_DATUM(0),
77 0,
79 );
81
82 if (!raster) {
83 PG_FREE_IF_COPY(pgraster, 0);
84 elog(ERROR, "RASTER_envelope: Could not deserialize raster");
85 PG_RETURN_NULL();
86 }
87
89
91 PG_FREE_IF_COPY(pgraster, 0);
92
94 elog(ERROR, "RASTER_envelope: Could not get raster's envelope");
95 PG_RETURN_NULL();
96 }
97 else if (geom == NULL) {
98 elog(NOTICE, "Raster's envelope is NULL");
99 PG_RETURN_NULL();
100 }
101
104
105 SET_VARSIZE(gser, gser_size);
106 PG_RETURN_POINTER(gser);
107}
GSERIALIZED * gserialized_from_lwgeom(LWGEOM *geom, size_t *size)
Allocate a new GSERIALIZED from an LWGEOM.
void lwgeom_free(LWGEOM *geom)
void rt_raster_destroy(rt_raster raster)
Release memory associated to a raster.
rt_errorstate rt_raster_get_envelope_geom(rt_raster raster, LWGEOM **env)
Get raster's envelope as a geometry.
rt_raster rt_raster_deserialize(void *serialized, int header_only)
Return a raster from a serialized form.
raster
Be careful!! Zeros function's input parameter can be a (height x width) array, not (width x height): ...