In pg_upgrade cross-version test, handle lack of oldstyle_length().
authorNoah Misch <[email protected]>
Wed, 30 Dec 2020 09:43:43 +0000 (01:43 -0800)
committerNoah Misch <[email protected]>
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- 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