]> granicus.if.org Git - postgis/commitdiff
Minor comment cleanup in rtpostgis.sql.in.c. Added regression tests for AddRasterCon...
authorBborie Park <bkpark at ucdavis.edu>
Fri, 16 Dec 2011 22:07:26 +0000 (22:07 +0000)
committerBborie Park <bkpark at ucdavis.edu>
Fri, 16 Dec 2011 22:07:26 +0000 (22:07 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8448 b70326c6-7e19-0410-871a-916f4a2858ee

raster/rt_pg/rtpostgis.sql.in.c
raster/test/regress/check_raster_columns.sql
raster/test/regress/check_raster_columns_expected
raster/test/regress/check_raster_overviews.sql
raster/test/regress/check_raster_overviews_expected

index c1921cd20c223f6194fff1b4ec39d6b102795a7c..910c7f181af29ad55ebcad4305d6aaff92224b73 100644 (file)
@@ -3476,6 +3476,11 @@ CREATE AGGREGATE ST_Union(raster, integer, text) (
 -- test line
 -- test polygon smaller than pixel
 -- test and optimize raster totally included in polygon
+
+-----------------------------------------------------------------------
+-- ST_Clip
+-----------------------------------------------------------------------
+
 CREATE OR REPLACE FUNCTION ST_Clip(rast raster, band int, geom geometry, nodata float8 DEFAULT null, trimraster boolean DEFAULT false)
     RETURNS raster AS
     $$
index bdf53a9e6896dca88896649bdcc704ec82fda46f..7d44e989f050fdc425e314855ed5187c70b9a66c 100644 (file)
@@ -2,16 +2,82 @@
 -- $Id$
 --
 -- Copyright (c) 2010 Mateusz Loskot <mateusz@loskot.net>
+-- Copyright (C) 2011 Regents of the University of California
+--   <bkpark@ucdavis.edu>
 --
 -- This is free software; you can redistribute and/or modify it under
 -- the terms of the GNU General Public Licence. See the COPYING file.
 -----------------------------------------------------------------------
 
 -----------------------------------------------------------------------
---- Test RASTER_COLUMNS table
+--- Test RASTER_COLUMNS
 -----------------------------------------------------------------------
 
 -- Check table exists
 SELECT c.relname FROM pg_class c, pg_views v
   WHERE c.relname = v.viewname
-    AND v.viewname = 'raster_columns'
+    AND v.viewname = 'raster_columns';
+
+-----------------------------------------------------------------------
+--- Test AddRasterConstraints and DropRasterConstraints
+-----------------------------------------------------------------------
+
+DROP TABLE IF EXISTS test_raster_columns;
+CREATE TABLE test_raster_columns (
+       rid integer,
+       rast raster
+);
+CREATE OR REPLACE FUNCTION make_test_raster(
+       rid integer,
+       width integer DEFAULT 2,
+       height integer DEFAULT 2,
+       ul_x double precision DEFAULT 0,
+       ul_y double precision DEFAULT 0,
+       skew_x double precision DEFAULT 0,
+       skew_y double precision DEFAULT 0,
+       initvalue double precision DEFAULT 1,
+       nodataval double precision DEFAULT 0
+)
+       RETURNS void
+       AS $$
+       DECLARE
+               x int;
+               y int;
+               rast raster;
+       BEGIN
+               rast := ST_MakeEmptyRaster(width, height, ul_x, ul_y, 1, 1, skew_x, skew_y, 0);
+               rast := ST_AddBand(rast, 1, '8BUI', initvalue, nodataval);
+
+
+               INSERT INTO test_raster_columns VALUES (rid, rast);
+
+               RETURN;
+       END;
+       $$ LANGUAGE 'plpgsql';
+-- no skew
+SELECT make_test_raster(0, 2, 2, -2, -2);
+SELECT make_test_raster(1, 2, 2, 0, 0, 0, 0, 2);
+SELECT make_test_raster(2, 2, 2, 1, -1, 0, 0, 3);
+SELECT make_test_raster(3, 2, 2, 1, 1, 0, 0, 4);
+SELECT make_test_raster(4, 2, 2, 2, 2, 0, 0, 5);
+
+SELECT AddRasterConstraints(current_schema(), 'test_raster_columns', 'rast'::name);
+SELECT * FROM raster_columns;
+
+SELECT DropRasterConstraints(current_schema(),'test_raster_columns', 'rast'::name);
+SELECT * FROM raster_columns;
+
+SELECT AddRasterConstraints('test_raster_columns', 'rast', 'srid', 'extent', 'blocksize');
+SELECT * FROM raster_columns;
+
+SELECT DropRasterConstraints('test_raster_columns', 'rast', 'scale');
+SELECT * FROM raster_columns;
+
+SELECT AddRasterConstraints('test_raster_columns', 'rast', FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE);
+SELECT * FROM raster_columns;
+
+SELECT DropRasterConstraints(current_schema(), 'test_raster_columns', 'rast', 'scale');
+SELECT * FROM raster_columns;
+
+DROP FUNCTION make_test_raster(integer, integer, integer, double precision, double precision, double precision, double precision, double precision, double precision);
+DROP TABLE IF EXISTS test_raster_columns;
index 0f8e0a12ae5b03916084fee6a59eae2162d8ae19..22af802442fce90d3dcac34117860e9c59c4fc8b 100644 (file)
@@ -1 +1,56 @@
 raster_columns
+NOTICE:  table "test_raster_columns" does not exist, skipping
+NOTICE:  Adding SRID constraint
+NOTICE:  Adding scale-X constraint
+NOTICE:  Adding scale-Y constraint
+NOTICE:  Adding blocksize-X constraint
+NOTICE:  Adding blocksize-Y constraint
+NOTICE:  Adding alignment constraint
+NOTICE:  Adding number of bands constraint
+NOTICE:  Adding pixel type constraint
+NOTICE:  Adding nodata value constraint
+NOTICE:  Adding maximum extent constraint
+t
+postgis_reg|userland|test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|0103000000010000000800000000000000000000C000000000000000C000000000000000C000000000000000000000000000000040000000000000104000000000000010400000000000001040000000000000104000000000000000400000000000000840000000000000F0BF000000000000000000000000000000C000000000000000C000000000000000C0
+NOTICE:  Dropping SRID constraint
+NOTICE:  Dropping scale-X constraint
+NOTICE:  Dropping scale-Y constraint
+NOTICE:  Dropping blocksize-X constraint
+NOTICE:  Dropping blocksize-Y constraint
+NOTICE:  Dropping alignment constraint
+NOTICE:  Dropping regular blocking constraint
+NOTICE:  The constraint "enforce_regular_blocking_rast" does not exist.  Skipping
+PL/pgSQL function "droprasterconstraints" line 48 at RETURN
+NOTICE:  Dropping number of bands constraint
+NOTICE:  Dropping pixel type constraint
+NOTICE:  Dropping nodata value constraint
+NOTICE:  Dropping maximum extent constraint
+t
+postgis_reg|userland|test_raster_columns|rast|0|||||f|f||||
+NOTICE:  Adding SRID constraint
+NOTICE:  Adding maximum extent constraint
+NOTICE:  Adding blocksize-X constraint
+NOTICE:  Adding blocksize-Y constraint
+t
+postgis_reg|userland|test_raster_columns|rast|0|||2|2|f|f||||0103000000010000000800000000000000000000C000000000000000C000000000000000C000000000000000000000000000000040000000000000104000000000000010400000000000001040000000000000104000000000000000400000000000000840000000000000F0BF000000000000000000000000000000C000000000000000C000000000000000C0
+NOTICE:  Dropping scale-X constraint
+NOTICE:  The constraint "enforce_scalex_rast" does not exist.  Skipping
+PL/pgSQL function "droprasterconstraints" line 65 at assignment
+NOTICE:  Dropping scale-Y constraint
+NOTICE:  The constraint "enforce_scaley_rast" does not exist.  Skipping
+PL/pgSQL function "droprasterconstraints" line 67 at assignment
+t
+postgis_reg|userland|test_raster_columns|rast|0|||2|2|f|f||||0103000000010000000800000000000000000000C000000000000000C000000000000000C000000000000000000000000000000040000000000000104000000000000010400000000000001040000000000000104000000000000000400000000000000840000000000000F0BF000000000000000000000000000000C000000000000000C000000000000000C0
+NOTICE:  Adding scale-X constraint
+NOTICE:  Adding scale-Y constraint
+NOTICE:  Adding alignment constraint
+NOTICE:  Adding number of bands constraint
+NOTICE:  Adding nodata value constraint
+NOTICE:  Adding maximum extent constraint
+NOTICE:  The constraint "enforce_max_extent_rast" already exists.  To replace the existing constraint, delete the constraint and call ApplyRasterConstraints again
+PL/pgSQL function "addrasterconstraints" line 96 at assignment
+PL/pgSQL function "addrasterconstraints" line 48 at RETURN
+t
+postgis_reg|userland|test_raster_columns|rast|0|1|1|2|2|t|f|1||{0}|0103000000010000000800000000000000000000C000000000000000C000000000000000C000000000000000000000000000000040000000000000104000000000000010400000000000001040000000000000104000000000000000400000000000000840000000000000F0BF000000000000000000000000000000C000000000000000C000000000000000C0
+ERROR:  The table 'userland' does not occur in the search_path
+postgis_reg|userland|test_raster_columns|rast|0|1|1|2|2|t|f|1||{0}|0103000000010000000800000000000000000000C000000000000000C000000000000000C000000000000000000000000000000040000000000000104000000000000010400000000000001040000000000000104000000000000000400000000000000840000000000000F0BF000000000000000000000000000000C000000000000000C000000000000000C0
index 9dc1988bdfb0ff240d7cb2987f30b028990e93bf..85fd9e5090bf7875f2ee57da3821283cf0230ebd 100644 (file)
@@ -2,16 +2,88 @@
 -- $Id$
 --
 -- Copyright (c) 2010 Mateusz Loskot <mateusz@loskot.net>
+-- Copyright (C) 2011 Regents of the University of California
+--   <bkpark@ucdavis.edu>
 --
 -- This is free software; you can redistribute and/or modify it under
 -- the terms of the GNU General Public Licence. See the COPYING file.
 -----------------------------------------------------------------------
 
 -----------------------------------------------------------------------
---- Test RASTER_OVERVIEWS table
+--- Test RASTER_OVERVIEWS
 -----------------------------------------------------------------------
 
 -- Check table exists
 SELECT c.relname FROM pg_class c, pg_views v
   WHERE c.relname = v.viewname
-    AND v.viewname = 'raster_overviews'
+    AND v.viewname = 'raster_overviews';
+
+-----------------------------------------------------------------------
+--- Test AddOverviewConstraints and DropOverviewConstraints
+-----------------------------------------------------------------------
+
+DROP TABLE IF EXISTS test_raster_columns;
+CREATE TABLE test_raster_columns (
+       rid integer,
+       rast raster
+);
+DROP TABLE IF EXISTS test_raster_overviews;
+CREATE OR REPLACE FUNCTION make_test_raster(
+       rid integer,
+       width integer DEFAULT 2,
+       height integer DEFAULT 2,
+       ul_x double precision DEFAULT 0,
+       ul_y double precision DEFAULT 0,
+       skew_x double precision DEFAULT 0,
+       skew_y double precision DEFAULT 0,
+       initvalue double precision DEFAULT 1,
+       nodataval double precision DEFAULT 0
+)
+       RETURNS void
+       AS $$
+       DECLARE
+               x int;
+               y int;
+               rast raster;
+       BEGIN
+               rast := ST_MakeEmptyRaster(width, height, ul_x, ul_y, 1, 1, skew_x, skew_y, 0);
+               rast := ST_AddBand(rast, 1, '8BUI', initvalue, nodataval);
+
+
+               INSERT INTO test_raster_columns VALUES (rid, rast);
+
+               RETURN;
+       END;
+       $$ LANGUAGE 'plpgsql';
+-- no skew
+SELECT make_test_raster(0, 2, 2, -2, -2);
+SELECT make_test_raster(1, 2, 2, 0, 0, 0, 0, 2);
+SELECT make_test_raster(2, 2, 2, 1, -1, 0, 0, 3);
+SELECT make_test_raster(3, 2, 2, 1, 1, 0, 0, 4);
+SELECT make_test_raster(4, 2, 2, 2, 2, 0, 0, 5);
+
+SELECT *
+INTO test_raster_overviews
+FROM test_raster_columns;
+SELECT * FROM raster_columns;
+SELECT * FROM raster_overviews;
+
+SELECT AddRasterConstraints(current_schema(), 'test_raster_columns', 'rast'::name);
+SELECT * FROM raster_columns;
+SELECT * FROM raster_overviews;
+
+SELECT AddOverviewConstraints('test_raster_overviews', 'rast', 'test_raster_columns', 'rast', 1);
+SELECT * FROM raster_columns;
+SELECT * FROM raster_overviews;
+
+SELECT DropOverviewConstraints(current_schema(), 'test_raster_overviews', 'rast');
+SELECT * FROM raster_columns;
+SELECT * FROM raster_overviews;
+
+SELECT DropRasterConstraints(current_schema(), 'test_raster_columns', 'rast'::name);
+SELECT * FROM raster_columns;
+SELECT * FROM raster_overviews;
+
+DROP FUNCTION make_test_raster(integer, integer, integer, double precision, double precision, double precision, double precision, double precision, double precision);
+DROP TABLE IF EXISTS test_raster_overviews;
+DROP TABLE IF EXISTS test_raster_columns;
index f2598fd69abf3e9dc69b58e2de599089ed4a9c2c..f25d7fddd9f20a4cd4deef5d8863b77f7fe21c52 100644 (file)
@@ -1 +1,41 @@
 raster_overviews
+NOTICE:  table "test_raster_columns" does not exist, skipping
+NOTICE:  table "test_raster_overviews" does not exist, skipping
+postgis_reg|userland|test_raster_columns|rast|0|||||f|f||||
+postgis_reg|userland|test_raster_overviews|rast|0|||||f|f||||
+NOTICE:  Adding SRID constraint
+NOTICE:  Adding scale-X constraint
+NOTICE:  Adding scale-Y constraint
+NOTICE:  Adding blocksize-X constraint
+NOTICE:  Adding blocksize-Y constraint
+NOTICE:  Adding alignment constraint
+NOTICE:  Adding number of bands constraint
+NOTICE:  Adding pixel type constraint
+NOTICE:  Adding nodata value constraint
+NOTICE:  Adding maximum extent constraint
+t
+postgis_reg|userland|test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|0103000000010000000800000000000000000000C000000000000000C000000000000000C000000000000000000000000000000040000000000000104000000000000010400000000000001040000000000000104000000000000000400000000000000840000000000000F0BF000000000000000000000000000000C000000000000000C000000000000000C0
+postgis_reg|userland|test_raster_overviews|rast|0|||||f|f||||
+t
+postgis_reg|userland|test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|0103000000010000000800000000000000000000C000000000000000C000000000000000C000000000000000000000000000000040000000000000104000000000000010400000000000001040000000000000104000000000000000400000000000000840000000000000F0BF000000000000000000000000000000C000000000000000C000000000000000C0
+postgis_reg|userland|test_raster_overviews|rast|0|||||f|f||||
+postgis_reg|userland|test_raster_overviews|rast|postgis_reg|userland|test_raster_columns|rast|1
+t
+postgis_reg|userland|test_raster_columns|rast|0|1|1|2|2|t|f|1|{8BUI}|{0}|0103000000010000000800000000000000000000C000000000000000C000000000000000C000000000000000000000000000000040000000000000104000000000000010400000000000001040000000000000104000000000000000400000000000000840000000000000F0BF000000000000000000000000000000C000000000000000C000000000000000C0
+postgis_reg|userland|test_raster_overviews|rast|0|||||f|f||||
+NOTICE:  Dropping SRID constraint
+NOTICE:  Dropping scale-X constraint
+NOTICE:  Dropping scale-Y constraint
+NOTICE:  Dropping blocksize-X constraint
+NOTICE:  Dropping blocksize-Y constraint
+NOTICE:  Dropping alignment constraint
+NOTICE:  Dropping regular blocking constraint
+NOTICE:  The constraint "enforce_regular_blocking_rast" does not exist.  Skipping
+PL/pgSQL function "droprasterconstraints" line 48 at RETURN
+NOTICE:  Dropping number of bands constraint
+NOTICE:  Dropping pixel type constraint
+NOTICE:  Dropping nodata value constraint
+NOTICE:  Dropping maximum extent constraint
+t
+postgis_reg|userland|test_raster_columns|rast|0|||||f|f||||
+postgis_reg|userland|test_raster_overviews|rast|0|||||f|f||||