Add postgis_noop(raster) function
authorSandro Santilli <strk@keybit.net>
Thu, 19 Jun 2014 11:23:13 +0000 (11:23 +0000)
committerSandro Santilli <strk@keybit.net>
Thu, 19 Jun 2014 11:23:13 +0000 (11:23 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@12625 b70326c6-7e19-0410-871a-916f4a2858ee

NEWS
raster/rt_pg/rtpg_inout.c
raster/rt_pg/rtpostgis.sql.in

diff --git a/NEWS b/NEWS
index f6369bb067334328f805c6118ddc9b8115a3f9e0..7a438085629968b603f70b3329bcf71f581c8cc4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ PostGIS 2.2.0
 
  * New Features *
 
+  - 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
     variable GDAL_SKIP
index 720d7ca009a9556b542cc659260fa89b65cc5ecf..5d4eaa66dc5b12ecdbfc2031fc7233db8ad5036c 100644 (file)
@@ -35,6 +35,7 @@
 
 Datum RASTER_in(PG_FUNCTION_ARGS);
 Datum RASTER_out(PG_FUNCTION_ARGS);
+Datum RASTER_noop(PG_FUNCTION_ARGS);
 
 Datum RASTER_to_bytea(PG_FUNCTION_ARGS);
 Datum RASTER_to_binary(PG_FUNCTION_ARGS);
@@ -201,3 +202,24 @@ Datum RASTER_to_binary(PG_FUNCTION_ARGS)
        PG_RETURN_POINTER(result);
 }
 
+PG_FUNCTION_INFO_V1(RASTER_noop);
+Datum RASTER_noop(PG_FUNCTION_ARGS)
+{
+       rt_raster raster;
+       rt_pgraster *pgraster, *result;
+       pgraster = (rt_pgraster *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
+       raster = rt_raster_deserialize(pgraster, FALSE);
+       if (!raster) {
+               PG_FREE_IF_COPY(pgraster, 0);
+               elog(ERROR, "RASTER_noop: Could not deserialize raster");
+               PG_RETURN_NULL();
+       }
+       result = rt_raster_serialize(raster);
+       rt_raster_destroy(raster);
+       if (result == NULL)
+               PG_RETURN_NULL();
+
+       SET_VARSIZE(result, raster->size);
+       PG_RETURN_POINTER(result);
+}
+
index 6ea7e6441994cc04f3d2c31b7b1226fafba99672..a0fa29f8fa74f8c515436308fc23f6a852adbac7 100644 (file)
@@ -8552,6 +8552,17 @@ CREATE OR REPLACE FUNCTION UpdateRasterSRID(
        AS $$ SELECT _UpdateRasterSRID('', $1, $2, $3) $$
        LANGUAGE 'sql' VOLATILE STRICT;
 
+-------------------------------------------------------------------
+--  Debugging
+-------------------------------------------------------------------
+
+-- Availability: 2.2.0
+CREATE OR REPLACE FUNCTION postgis_noop(raster)
+       RETURNS geometry
+       AS 'MODULE_PATHNAME', 'RASTER_noop'
+       LANGUAGE 'c' VOLATILE STRICT;
+
+
 -------------------------------------------------------------------
 --  END
 -------------------------------------------------------------------