]> granicus.if.org Git - postgresql/commitdiff
pg_upgrade: Make test.sh's installcheck use to-be-upgraded version's bindir.
authorAndres Freund <andres@anarazel.de>
Thu, 23 May 2019 21:46:57 +0000 (14:46 -0700)
committerAndres Freund <andres@anarazel.de>
Thu, 23 May 2019 21:49:59 +0000 (14:49 -0700)
On master (after 700538) the old version's installed psql was used -
even when the old version might not actually be installed / might be
installed into a temporary directory. As commonly the case when just
executing make check for pg_upgrade, as $oldbindir is just the current
version's $bindir.

In the back branches, with --install specified, psql from the new
version's temporary installation was used, without --install (e.g for
NO_TEMP_INSTALL, cf 47b3c26642), the new version's installed psql was
used (which might or might not exist).

Author: Andres Freund
Discussion: https://postgr.es/m/20190522175150.c26f4jkqytahajdg@alap3.anarazel.de

src/bin/pg_upgrade/test.sh

index af428a9df802671597118c70e4fda8866fa238c6..006fde3f6ce0d9a2daf8e3d99574fc891a87823c 100644 (file)
@@ -84,14 +84,6 @@ if [ "$1" = '--install' ]; then
        SHLIB_PATH=$libdir:$SHLIB_PATH
        export SHLIB_PATH
        PATH=$libdir:$PATH
-
-       # We need to make it use psql from our temporary installation,
-       # because otherwise the installcheck run below would try to
-       # use psql from the proper installation directory, which might
-       # be outdated or missing. But don't override anything else that's
-       # already in EXTRA_REGRESS_OPTS.
-       EXTRA_REGRESS_OPTS="$EXTRA_REGRESS_OPTS --bindir='$bindir'"
-       export EXTRA_REGRESS_OPTS
 fi
 
 : ${oldbindir=$bindir}
@@ -100,6 +92,14 @@ fi
 oldsrc=`cd "$oldsrc" && pwd`
 newsrc=`cd ../../.. && pwd`
 
+# We need to make pg_regress use psql from the desired installation
+# (likely a temporary one), because otherwise the installcheck run
+# below would try to use psql from the proper installation directory
+# of the target version, which might be outdated or not exist. But
+# don't override anything else that's already in EXTRA_REGRESS_OPTS.
+EXTRA_REGRESS_OPTS="$EXTRA_REGRESS_OPTS --bindir='$oldbindir'"
+export EXTRA_REGRESS_OPTS
+
 PATH=$bindir:$PATH
 export PATH