From: Sandro Santilli Date: Tue, 17 Mar 2015 10:43:00 +0000 (+0000) Subject: Fix soft upgrade from 2.0 to 2.2 (#3081) X-Git-Tag: 2.2.0rc1~588 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ab500769fc3eb2f776fe554639837d2a3aa233b8;p=postgis Fix soft upgrade from 2.0 to 2.2 (#3081) git-svn-id: http://svn.osgeo.org/postgis/trunk@13348 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in b/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in index 1ac13ecd4..ead170248 100644 --- a/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in +++ b/raster/rt_pg/rtpostgis_upgrade_cleanup.sql.in @@ -83,100 +83,13 @@ CREATE CAST (raster AS bytea) DROP CAST IF EXISTS (raster AS box2d); DROP FUNCTION IF EXISTS box2d(raster); --- If we are running 9.0+ we can use DO plpgsql to check --- and only create if not exists so no need to force a drop --- that way if people are using it, we will not mess them up -DO language 'plpgsql' $$ -BEGIN - -- create raster box3d cast if it does not exist - IF NOT EXISTS(SELECT cs.typname AS source - FROM pg_cast AS ca - INNER JOIN pg_type AS cs ON ca.castsource = cs.oid - INNER JOIN pg_type AS ct ON ca.casttarget = ct.oid - WHERE cs.typname = 'raster' AND ct.typname = 'box3d') THEN - CREATE OR REPLACE FUNCTION box3d(raster) - RETURNS box3d - AS 'SELECT box3d(st_convexhull($1))' - LANGUAGE 'sql' IMMUTABLE STRICT; - CREATE CAST (raster AS box3d) - WITH FUNCTION box3d(raster) AS ASSIGNMENT; - END IF; - - -- create addbandarg type if it does not exist - IF NOT EXISTS(SELECT typname - FROM pg_type - WHERE typname = 'addbandarg') THEN - CREATE TYPE addbandarg AS ( - index int, - pixeltype text, - initialvalue float8, - nodataval float8 - ); - END IF; - - -- create agg_samealignment type if it does not exist - IF NOT EXISTS(SELECT typname - FROM pg_type - WHERE typname = 'agg_samealignment') THEN - CREATE TYPE agg_samealignment AS ( - refraster raster, - aligned boolean - ); - END IF; - - -- create unionarg type if it does not exist - IF NOT EXISTS(SELECT typname - FROM pg_type - WHERE typname = 'unionarg') THEN - CREATE TYPE unionarg AS - (nband integer, - uniontype text); - END IF; - - -- create rastbandarg type if it does not exist - IF NOT EXISTS(SELECT typname - FROM pg_type - WHERE typname = 'rastbandarg') THEN - CREATE TYPE rastbandarg AS ( - rast raster, - nband integer - ); - END IF; - - -- create summarystats type if it does not exist - IF NOT EXISTS(SELECT typname - FROM pg_type - WHERE typname = 'summarystats') THEN - CREATE TYPE summarystats AS ( - count bigint, - sum double precision, - mean double precision, - stddev double precision, - min double precision, - max double precision - ); - END IF; - - -- create agg_count type if it does not exist - IF NOT EXISTS(SELECT typname - FROM pg_type - WHERE typname = 'agg_count') THEN - CREATE TYPE agg_count AS ( - count bigint, - nband integer, - exclude_nodata_value boolean, - sample_percent double precision - ); - END IF; - -END$$; - -- make geometry cast ASSIGNMENT DROP CAST IF EXISTS (raster AS geometry); CREATE CAST (raster AS geometry) WITH FUNCTION st_convexhull(raster) AS ASSIGNMENT; -- add missing OPERATORs +-- TODO: drop, relying on proc_upgrade.pl output ? DO LANGUAGE 'plpgsql' $$ BEGIN IF NOT EXISTS (