In pg_upgrade cross-version test, handle lack of oldstyle_length().
authorNoah Misch <noah@leadboat.com>
Wed, 30 Dec 2020 09:43:43 +0000 (01:43 -0800)
committerNoah Misch <noah@leadboat.com>
Wed, 30 Dec 2020 09:43:43 +0000 (01:43 -0800)
This suffices for testing v12 -> v13; some other version pairs need more
changes.  Back-patch to v10, which removed the function.

src/bin/pg_upgrade/test.sh

index 04aa7fd9f513ca668bccc602faed721150a95c04..a2da1abe3f167324d3194bfc1fe8d289bc6da99c 100644 (file)
@@ -167,17 +167,17 @@ createdb "regression$dbname3" || createdb_status=$?
 if "$MAKE" -C "$oldsrc" installcheck-parallel; then
        oldpgversion=`psql -X -A -t -d regression -c "SHOW server_version_num"`
 
-       # before dumping, get rid of objects not existing in later versions
+       # before dumping, get rid of objects not feasible in later versions
        if [ "$newsrc" != "$oldsrc" ]; then
                fix_sql=""
                case $oldpgversion in
                        804??)
-                               fix_sql="DROP FUNCTION public.myfunc(integer); DROP FUNCTION public.oldstyle_length(integer, text);"
-                               ;;
-                       *)
-                               fix_sql="DROP FUNCTION public.oldstyle_length(integer, text);"
+                               fix_sql="DROP FUNCTION public.myfunc(integer);"
                                ;;
                esac
+               fix_sql="$fix_sql
+                                DROP FUNCTION IF EXISTS
+                                       public.oldstyle_length(integer, text);  -- last in 9.6";
                psql -X -d regression -c "$fix_sql;" || psql_fix_sql_status=$?
        fi