As per discussions and ticket #1319, raster_columns and raster_overviews are now constraint-based views. AddRasterColumn, DropRasterColumn and DropRasterTable are now deprecated in favor of AddRasterConstraints and DropRasterConstraints. Additional constraints are now available for enforcing the consistency of the rasters in a table.

git-svn-id: http://svn.osgeo.org/postgis/trunk@8305 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Bborie Park 2011-12-05 18:58:51 +00:00
parent 47faf3b72f
commit af14045d90
4 changed files with 1424 additions and 256 deletions

File diff suppressed because it is too large Load diff

View file

@ -7,6 +7,8 @@
--
-- Copyright (C) 2011 Regina Obe
-- <lr@pcorp.us>
-- 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.
@ -21,6 +23,15 @@
-- Drop obsolete functions
-- (which fully obsolete, changed to take default args, or outp params changed) --
-- drop aggregates
DROP AGGREGATE IF EXISTS ST_Union(raster, text, text, text, double precision, text, text, text, double precision, text, text, text, double precision);
DROP AGGREGATE IF EXISTS ST_Union(raster, text, text, text);
DROP AGGREGATE IF EXISTS ST_Union(raster, text, text, text, double precision, text, text, text, double precision);
DROP AGGREGATE IF EXISTS ST_Union(raster, text, text);
DROP AGGREGATE IF EXISTS ST_Union(raster, text, text, text, double precision);
DROP AGGREGATE IF EXISTS ST_Union(raster, text);
DROP AGGREGATE IF EXISTS ST_Union(raster);
DROP FUNCTION IF EXISTS st_summarystats(rastertable text, rastercolumn text, nband integer, exclude_nodata_value boolean, sample_percent double precision) ;
DROP FUNCTION IF EXISTS st_summarystats(rastertable text, rastercolumn text, exclude_nodata_value boolean) ;
DROP FUNCTION IF EXISTS st_summarystats(rast raster, exclude_nodata_value boolean) ;
@ -183,6 +194,7 @@ DROP FUNCTION IF EXISTS dumpaswktpolygons(raster, integer);
-- signature changed
DROP FUNCTION IF EXISTS st_bandmetadata(raster, VARIADIC int[]);
--change to use default parameters
DROP FUNCTION IF EXISTS ST_PixelAsPolygons(raster);
DROP FUNCTION IF EXISTS ST_PixelAsPolygons(raster,integer);
@ -190,3 +202,39 @@ DROP FUNCTION IF EXISTS ST_PixelAsPolygons(raster,integer);
-- no longer needed functions changed to use out parameters
DROP TYPE IF EXISTS bandmetadata;
DROP TYPE IF EXISTS geomvalxy;
-- raster_columns and raster_overviews tables are deprecated
DROP FUNCTION IF EXISTS _rename_raster_tables();
CREATE OR REPLACE FUNCTION _rename_raster_tables()
RETURNS void AS $$
DECLARE
cnt int;
BEGIN
SELECT count(*) INTO cnt
FROM pg_class c
JOIN pg_namespace n
ON c.relnamespace = n.oid
WHERE c.relname = 'raster_columns'
AND c.relkind = 'r'::char
AND NOT pg_is_other_temp_schema(c.relnamespace);
IF cnt > 0 THEN
EXECUTE 'ALTER TABLE raster_columns RENAME TO deprecated_raster_columns';
END IF;
SELECT count(*) INTO cnt
FROM pg_class c
JOIN pg_namespace n
ON c.relnamespace = n.oid
WHERE c.relname = 'raster_overviews'
AND c.relkind = 'r'::char
AND NOT pg_is_other_temp_schema(c.relnamespace);
IF cnt > 0 THEN
EXECUTE 'ALTER TABLE raster_overviews RENAME TO deprecated_raster_overviews';
END IF;
END;
$$ LANGUAGE 'plpgsql' VOLATILE;
SELECT _rename_raster_tables();
DROP FUNCTION IF EXISTS _rename_raster_tables();

View file

@ -12,6 +12,6 @@
-----------------------------------------------------------------------
-- Check table exists
SELECT c.relname FROM pg_class c, pg_tables t
WHERE c.relname = t.tablename
AND t.tablename = 'raster_columns'
SELECT c.relname FROM pg_class c, pg_views v
WHERE c.relname = v.viewname
AND v.viewname = 'raster_columns'

View file

@ -12,6 +12,6 @@
-----------------------------------------------------------------------
-- Check table exists
SELECT c.relname FROM pg_class c, pg_tables t
WHERE c.relname = t.tablename
AND t.tablename = 'raster_overviews'
SELECT c.relname FROM pg_class c, pg_views v
WHERE c.relname = v.viewname
AND v.viewname = 'raster_overviews'