From: Justin Pryzby Date: Sat, 5 Dec 2020 22:31:19 -0600 Subject: [PATCH 1/2] WIP: pg_upgrade/test.sh: changes needed to allow testing upgrade from v11 --- src/bin/pg_upgrade/check.c | 2 +- src/bin/pg_upgrade/test.sh | 44 ++++++++++++++++++++++++++++++++------ 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c index 357997972b..6dfe3cff65 100644 --- a/src/bin/pg_upgrade/check.c +++ b/src/bin/pg_upgrade/check.c @@ -122,7 +122,7 @@ check_and_dump_old_cluster(bool live_check) * to prevent upgrade when used in user objects (tables, indexes, ...). */ if (GET_MAJOR_VERSION(old_cluster.major_version) <= 1100) - old_11_check_for_sql_identifier_data_type_usage(&old_cluster); + ; // old_11_check_for_sql_identifier_data_type_usage(&old_cluster); /* * Pre-PG 10 allowed tables with 'unknown' type columns and non WAL logged diff --git a/src/bin/pg_upgrade/test.sh b/src/bin/pg_upgrade/test.sh index 04aa7fd9f5..b39265f66d 100644 --- a/src/bin/pg_upgrade/test.sh +++ b/src/bin/pg_upgrade/test.sh @@ -23,7 +23,7 @@ standard_initdb() { # To increase coverage of non-standard segment size and group access # without increasing test runtime, run these tests with a custom setting. # Also, specify "-A trust" explicitly to suppress initdb's warning. - "$1" -N --wal-segsize 1 -g -A trust + "$1" -N -A trust if [ -n "$TEMP_CONFIG" -a -r "$TEMP_CONFIG" ] then cat "$TEMP_CONFIG" >> "$PGDATA/postgresql.conf" @@ -108,6 +108,9 @@ export EXTRA_REGRESS_OPTS mkdir "$outputdir" mkdir "$outputdir"/testtablespace +mkdir "$outputdir"/sql +mkdir "$outputdir"/expected + logdir=`pwd`/log rm -rf "$logdir" mkdir "$logdir" @@ -175,13 +178,36 @@ if "$MAKE" -C "$oldsrc" installcheck-parallel; then 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 IF EXISTS public.oldstyle_length(integer, text);" + + # commit 1ed6b8956 + fix_sql="$fix_sql DROP OPERATOR public.#@# (pg_catalog.int8, NONE);" + fix_sql="$fix_sql DROP OPERATOR public.#%# (pg_catalog.int8, NONE);" + fix_sql="$fix_sql DROP OPERATOR public.!=- (pg_catalog.int8, NONE);" + fix_sql="$fix_sql DROP OPERATOR public.#@%# (pg_catalog.int8, NONE);" + + # commit 76f412ab3 + fix_sql="$fix_sql DROP OPERATOR IF EXISTS @#@(bigint,NONE);" + fix_sql="$fix_sql DROP OPERATOR IF EXISTS @#@(NONE,bigint);" + + # commit 9e38c2bb5 and 97f73a978 + fix_sql="$fix_sql DROP AGGREGATE IF EXISTS array_larger_accum (anyarray);" + fix_sql="$fix_sql DROP AGGREGATE IF EXISTS array_cat_accum(anyarray);" + fix_sql="$fix_sql DROP AGGREGATE IF EXISTS first_el_agg_any(anyelement);" + + # commit 578b22971 + fix_sql="$fix_sql ALTER TABLE public.tenk1 SET WITHOUT OIDS;" + fix_sql="$fix_sql ALTER TABLE public.tenk1 SET WITHOUT OIDS;" + #fix_sql="$fix_sql ALTER TABLE public.stud_emp SET WITHOUT OIDS;" # inherited + fix_sql="$fix_sql ALTER TABLE public.emp SET WITHOUT OIDS;" + fix_sql="$fix_sql ALTER TABLE public.tt7 SET WITHOUT OIDS;" ;; esac + psql -X -d regression -c "$fix_sql;" || psql_fix_sql_status=$? fi - pg_dumpall --no-sync -f "$temp_root"/dump1.sql || pg_dumpall1_status=$? + pg_dumpall --extra-float-digits=0 --no-sync -f "$temp_root"/dump1.sql || pg_dumpall1_status=$? if [ "$newsrc" != "$oldsrc" ]; then # update references to old source tree's regress.so etc @@ -227,23 +253,29 @@ pg_upgrade $PG_UPGRADE_OPTS -d "${PGDATA}.old" -D "$PGDATA" -b "$oldbindir" -p " # Windows hosts don't support Unix-y permissions. case $testhost in MINGW*) ;; - *) if [ `find "$PGDATA" -type f ! -perm 640 | wc -l` -ne 0 ]; then + *) + x=`find "$PGDATA" -type f -perm /127 -ls` + if [ -n "$x" ]; then echo "files in PGDATA with permission != 640"; + echo "$x" |head exit 1; fi ;; esac case $testhost in MINGW*) ;; - *) if [ `find "$PGDATA" -type d ! -perm 750 | wc -l` -ne 0 ]; then + *) + x=`find "$PGDATA" -type d -perm 027 -ls` + if [ "$x" ]; then echo "directories in PGDATA with permission != 750"; + echo "$x" |head exit 1; fi ;; esac pg_ctl start -l "$logdir/postmaster2.log" -o "$POSTMASTER_OPTS" -w -pg_dumpall --no-sync -f "$temp_root"/dump2.sql || pg_dumpall2_status=$? +pg_dumpall --extra-float-digits=0 --no-sync -f "$temp_root"/dump2.sql || pg_dumpall2_status=$? pg_ctl -m fast stop if [ -n "$pg_dumpall2_status" ]; then -- 2.17.0 --WQS/f3aCdEH+xDC1 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0002-pg_upgrade-test-to-exercise-binary-compatibility.patch"