]> granicus.if.org Git - postgis/commitdiff
Revise postgis_extensions_upgrade to repackage raster if it finds it unpackaged....
authorRegina Obe <lr@pcorp.us>
Thu, 27 Sep 2018 21:50:36 +0000 (21:50 +0000)
committerRegina Obe <lr@pcorp.us>
Thu, 27 Sep 2018 21:50:36 +0000 (21:50 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@16847 b70326c6-7e19-0410-871a-916f4a2858ee

extensions/postgis/unpackage_raster_if_needed.sql
postgis/postgis.sql.in

index eb4b45d74bf528a9a3eb6b123a80a344c92be58b..3ce504c3f156a67e23bf9dc0437fd37a71dcc278 100644 (file)
@@ -15,8 +15,8 @@ BEGIN
                $unpackage$;
 
                RAISE WARNING 'PostGIS Raster functionality have been unpackaged'
-               USING HINT = 'type `CREATE EXTENSION postgis_raster FROM unpackaged` to re-package'
-                                                                ' or source `uninstall_rtpostgis.sql` to drop.';
+               USING HINT = 'type `SELECT postgis_extensions_upgrade(); to repackage.'
+                                                                ' If you want to drop raster after, run: DROP EXTENSION postgis_raster;';
        END IF;
 END
 $unpackage_if_needed$ LANGUAGE 'plpgsql';
index 6afb0352a4fd0d815af73272bffd4f245f63a262..ba067eb62cba22ca6879158b2fe0c26708578f72 100644 (file)
@@ -2823,7 +2823,7 @@ $$ LANGUAGE 'sql' STABLE;
 -- Changed: 3.0.0 also upgrade postgis_raster if it exists
 CREATE OR REPLACE FUNCTION postgis_extensions_upgrade() RETURNS text
 AS $$
-DECLARE rec record; sql text;
+DECLARE rec record; sql text; var_schema text;
 BEGIN
        -- if at a version different from default version or we are at a dev version,
        -- then do an upgrade to default version
@@ -2853,6 +2853,23 @@ BEGIN
                sql = 'ALTER EXTENSION ' || rec.name || ' UPDATE TO ' || quote_ident(rec.default_version)   || ';';
                EXECUTE sql;
                RAISE NOTICE '%', sql;
+
+               -- If postgis raster functions still exist, but postgis_raster extension is not installed
+               -- then repackage as postgis_raster
+               IF rec.name = 'postgis' 
+                       AND NOT EXISTS(SELECT 1 FROM pg_extension WHERE extname='postgis_raster') 
+                       AND EXISTS(SELECT 1 FROM pg_proc WHERE proname LIKE 'raster%') THEN
+                       SELECT n.nspname INTO var_schema 
+                               FROM pg_catalog.pg_extension AS e 
+                                       INNER JOIN pg_catalog.pg_namespace AS n ON e.extnamespace = n.oid
+                       WHERE e.extname = 'postgis';
+
+                       sql = 'CREATE EXTENSION postgis_raster FROM unpackaged SCHEMA ' || quote_ident(var_schema) || ';';
+                       EXECUTE sql;
+
+               END IF;
+
+
        END LOOP;
 
        RETURN @extschema@.postgis_full_version();