In fa66b6dee, Micheal fixed test.sh to work back to v11, so I suppose nobody is
trying to run it with older versions, as I was endeavored to do.
With the attached patch, I'm able to test upgrades back to v9.6.
In 9.5, there are regression diffs from CONTEXT lines from non-error messages,
which is a v9.5 change (0426f349e). The first "make check" fails before even
getting to the upgrade part:
| NOTICE: trigger_func(before_ins_stmt) called: action = INSERT, when = BEFORE, level = STATEMENT
|- CONTEXT: SQL statement "INSERT INTO main_table VALUES (NEW.a, NEW.b)"
|- PL/pgSQL function view_trigger() line 17 at SQL statement
I tried a lot of things but couldn't find one that worked. I just tried this,
which allows the "make check" to pass, but then fails due missing symbols in
libpq during the upgrade phase. Maybe I'm missing something - Tom must have
tested psql against old versions somehow before de-supporting old versions (but
maybe not like this).
| time make check -C src/bin/pg_upgrade oldsrc=`pwd`/new/95 oldbindir=`pwd`/new/95/tmp_install/usr/local/pgsql/bin
with_temp_install="LD_LIBRARY_PATH=`pwd`/new/95/tmp_install/usr/local/pgsql/lib"
I tried installcheck, but then that fails because psql doesn't accept multiple
-c options (it runs the final -c command only).
| EXTRA_REGRESS_OPTS="--bindir `pwd`/new/95/tmp_install/usr/local/pgsql/bin"
LD_LIBRARY_PATH=`pwd`/new/95/tmp_install/usr/local/pgsql/libPGHOST=/tmp time make installcheck
| ...
| ============== creating database "regression" ==============
| ERROR: database "regression" does not exist
| STATEMENT: ALTER DATABASE "regression" SET lc_messages TO 'C';ALTER DATABASE "regression" SET lc_monetary TO
'C';ALTERDATABASE "regression" SET lc_numeric TO 'C';ALTER DATABASE "regression" SET lc_time TO 'C';ALTER DATABASE
"regression"SET bytea_output TO 'hex';ALTER DATABASE "regression" SET timezone_abbreviations TO 'Default';
| ERROR: database "regression" does not exist
| command failed: "/home/pryzbyj/src/postgres/new/95/tmp_install/usr/local/pgsql/bin/psql" -X -c "CREATE DATABASE
\"regression\"TEMPLATE=template0" -c "ALTER DATABASE \"regression\" SET lc_messages TO 'C';ALTER DATABASE
\"regression\"SET lc_monetary TO 'C';ALTER DATABASE \"regression\" SET lc_numeric TO 'C';ALTER DATABASE \"regression\"
SETlc_time TO 'C';ALTER DATABASE \"regression\" SET bytea_output TO 'hex';ALTER DATABASE \"regression\" SET
timezone_abbreviationsTO 'Default';" "postgres"
pg_regress was changed to do that recently:
commit f45dc59a38cab1d2af6baaedb79559fe2e9b3781
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Wed Oct 20 18:44:37 2021 -0400
Improve pg_regress.c's infrastructure for issuing psql commands.
--
Justin