]> granicus.if.org Git - postgis/commitdiff
Drop and recreate aggregates when upgrading to the same dev version
authorSandro Santilli <strk@keybit.net>
Tue, 30 Sep 2014 16:31:16 +0000 (16:31 +0000)
committerSandro Santilli <strk@keybit.net>
Tue, 30 Sep 2014 16:31:16 +0000 (16:31 +0000)
See #2944 for the rationale

git-svn-id: http://svn.osgeo.org/postgis/trunk@13013 b70326c6-7e19-0410-871a-916f4a2858ee

utils/postgis_proc_upgrade.pl

index 366d4b1e878bd6ef9721a3ea8eddf95edf234a98..7b411e38e034a735b05d91503df4dae006daf4d9 100755 (executable)
@@ -330,7 +330,10 @@ EOF
 DO LANGUAGE 'plpgsql'
 \$postgis_proc_upgrade\$
 BEGIN
-  IF $last_updated > version_from_num FROM _postgis_upgrade_info THEN
+  IF $last_updated > version_from_num OR (
+      $last_updated = version_from_num AND version_from_isdev
+    ) FROM _postgis_upgrade_info
+  THEN
     EXECUTE 'DROP AGGREGATE IF EXISTS $aggsig';
     EXECUTE \$postgis_proc_upgrade_parsed_def\$ $def \$postgis_proc_upgrade_parsed_def\$;
   END IF;
@@ -496,7 +499,9 @@ CREATE TEMPORARY TABLE _postgis_upgrade_info AS WITH versions AS (
     as version_to_num,
   substring(installed from '([0-9]*)\.')::int * 100 +
   substring(installed from '[0-9]*\.([0-9]*)\.')::int
-    as version_from_num
+    as version_from_num,
+  position('dev' in  installed)::bool
+    as version_from_isdev
   FROM versions
 ;