* New Features *
+ - #2770, ST_MemSize(raster)
- Add postgis_noop(raster)
- Added missing variants of ST_TPI(), ST_TRI() and ST_Roughness()
- Added GUC postgis.gdal_enabled_drivers to specify GDAL config
PG_RETURN_FLOAT8(pixsize);
}
+/** find the detoasted size of a value */
+Datum RASTER_memsize(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(RASTER_memsize);
+Datum RASTER_memsize(PG_FUNCTION_ARGS)
+{
+ void *detoasted = PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+ size_t size = VARSIZE(detoasted);
+ PG_FREE_IF_COPY(detoasted,0);
+ PG_RETURN_INT32(size);
+}
+
+
END;
$$ LANGUAGE 'plpgsql' STABLE STRICT;
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION ST_MemSize(raster)
+ RETURNS int4
+ AS 'MODULE_PATHNAME', 'RASTER_memsize'
+ LANGUAGE 'c' IMMUTABLE STRICT;
+
-----------------------------------------------------------------------
-- Constructor ST_MakeEmptyRaster
-----------------------------------------------------------------------
ST_Summary(rast)
FROM raster_outdb_template
ORDER BY rid;
+
+SELECT 'ms1', ST_MemSize(ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0));
+SELECT 'ms2', ST_MemSize(rast) from raster_outdb_template order by rid;
4|Raster of 90x90 pixels has 2 bands and extent of BOX(0 -90,90 0)
band 1 of pixtype 8BUI is out-db with NODATA value of 255
band 2 of pixtype 8BUI is in-db with NODATA value of 0
+ms1|64
+ms2|280
+ms2|280
+ms2|8240
+ms2|8240