agora inbox for [email protected]  
help / color / mirror / Atom feed
From: Justin Pryzby <[email protected]>
Subject: [PATCH v5 4/4] Move pg_upgrade kludges to sql script
Date: Sat, 6 Mar 2021 18:35:26 -0600

---
 src/bin/pg_upgrade/test-upgrade.sql | 89 ++++++++++++++++++++++++++
 src/bin/pg_upgrade/test.sh          | 96 +----------------------------
 2 files changed, 90 insertions(+), 95 deletions(-)
 create mode 100644 src/bin/pg_upgrade/test-upgrade.sql

diff --git a/src/bin/pg_upgrade/test-upgrade.sql b/src/bin/pg_upgrade/test-upgrade.sql
new file mode 100644
index 0000000000..3dadd6ea74
--- /dev/null
+++ b/src/bin/pg_upgrade/test-upgrade.sql
@@ -0,0 +1,89 @@
+-- This file has a bunch of kludges needed for upgrading testing across major versions
+
+SELECT
+	ver >= 804 AND ver <= 1100 AS fromv84v11,
+	ver >= 905 AND ver <= 1300 AS fromv95v13,
+	ver >= 906 AND ver <= 1300 AS fromv96v13,
+	ver <= 80400 AS fromv84,
+	ver <= 90500 AS fromv95,
+	ver <= 90600 AS fromv96,
+	ver <= 100000 AS fromv10,
+	ver <= 110000 AS fromv11,
+	ver <= 120000 AS fromv12,
+	ver <= 130000 AS fromv13
+	FROM (SELECT current_setting('server_version_num')::int/100 AS ver) AS v;
+\gset
+
+\if :fromv84
+DROP FUNCTION public.myfunc(integer);
+\endif
+
+-- last in 9.6 -- commit 5ded4bd21
+DROP FUNCTION IF EXISTS public.oldstyle_length(integer, text);
+DROP FUNCTION IF EXISTS public.putenv(text);
+
+\if :fromv13
+-- last in v13 commit 76f412ab3
+-- public.!=- This one is only needed for v11+ ??
+-- Note, until v10, operators could only be dropped one at a time
+DROP OPERATOR IF EXISTS public.#@# (pg_catalog.int8, NONE);
+DROP OPERATOR IF EXISTS public.#%# (pg_catalog.int8, NONE);
+DROP OPERATOR IF EXISTS public.!=- (pg_catalog.int8, NONE);
+DROP OPERATOR IF EXISTS public.#@%# (pg_catalog.int8, NONE);
+\endif
+
+\if :fromv10
+-- commit 068503c76511cdb0080bab689662a20e86b9c845
+DROP TRANSFORM FOR integer LANGUAGE sql CASCADE;
+
+-- commit db3af9feb19f39827e916145f88fa5eca3130cb2
+DROP FUNCTION boxarea(box);
+DROP FUNCTION funny_dup17();
+
+-- commit cda6a8d01d391eab45c4b3e0043a1b2b31072f5f
+DROP TABLE abstime_tbl;
+DROP TABLE reltime_tbl;
+DROP TABLE tinterval_tbl;
+\endif
+
+\if :fromv96v13
+-- Various things removed for v14
+DROP AGGREGATE first_el_agg_any(anyelement);
+\endif
+
+\if :fromv95v13
+-- commit 9e38c2bb5 and 97f73a978
+-- DROP AGGREGATE array_larger_accum(anyarray);
+DROP AGGREGATE array_cat_accum(anyarray);
+
+-- commit 76f412ab3
+-- DROP OPERATOR @#@(bigint,NONE);
+DROP OPERATOR @#@(NONE,bigint);
+\endif
+
+-- \if :fromv84v11
+\if :fromv11
+-- commit 578b22971: OIDS removed in v12
+ALTER TABLE public.tenk1 SET WITHOUT OIDS;
+ALTER TABLE public.tenk1 SET WITHOUT OIDS;
+-- fix_sql="$fix_sql ALTER TABLE public.stud_emp SET WITHOUT OIDS;" # inherited
+ALTER TABLE public.emp SET WITHOUT OIDS;
+ALTER TABLE public.tt7 SET WITHOUT OIDS;
+\endif
+
+-- if [ "$newsrc" != "$oldsrc" ]; then
+-- 	# update references to old source tree's regress.so etc
+-- 	fix_sql=""
+-- 	case $oldpgversion in
+-- 		804??)
+-- 			fix_sql="UPDATE pg_proc SET probin = replace(probin::text, '$oldsrc', '$newsrc')::bytea WHERE probin LIKE '$oldsrc%';"
+-- 			;;
+-- 		*)
+-- 			fix_sql="UPDATE pg_proc SET probin = replace(probin, '$oldsrc', '$newsrc') WHERE probin LIKE '$oldsrc%';"
+-- 			;;
+-- 	esac
+-- 	psql -X -d regression -c "$fix_sql;" || psql_fix_sql_status=$?
+--
+--	mv "$temp_root"/dump1.sql "$temp_root"/dump1.sql.orig
+-- 	sed "s;$oldsrc;$newsrc;g" "$temp_root"/dump1.sql.orig >"$temp_root"/dump1.sql
+-- fi
diff --git a/src/bin/pg_upgrade/test.sh b/src/bin/pg_upgrade/test.sh
index 74c29229ac..a3df427f1d 100644
--- a/src/bin/pg_upgrade/test.sh
+++ b/src/bin/pg_upgrade/test.sh
@@ -178,101 +178,7 @@ if "$MAKE" -C "$oldsrc" installcheck-parallel; then
 
 	# 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);"
-				;;
-		esac
-		fix_sql="$fix_sql
-				 DROP FUNCTION IF EXISTS
-					public.oldstyle_length(integer, text);"	# last in 9.6 -- commit 5ded4bd21
-		fix_sql="$fix_sql
-				 DROP FUNCTION IF EXISTS
-					public.putenv(text);"	# last in v13
-		# last in v13 commit 76f412ab3
-		# public.!=- This one is only needed for v11+ ??
-		# Note, until v10, operators could only be dropped one at a time
-		fix_sql="$fix_sql
-				 DROP OPERATOR IF EXISTS
-					public.#@# (pg_catalog.int8, NONE);"
-		fix_sql="$fix_sql
-				 DROP OPERATOR IF EXISTS
-					public.#%# (pg_catalog.int8, NONE);"
-		fix_sql="$fix_sql
-				 DROP OPERATOR IF EXISTS
-					public.!=- (pg_catalog.int8, NONE);"
-		fix_sql="$fix_sql
-				 DROP OPERATOR IF EXISTS
-					public.#@%# (pg_catalog.int8, NONE);"
-
-		# commit 068503c76511cdb0080bab689662a20e86b9c845
-		case $oldpgversion in
-			10????)
-				fix_sql="$fix_sql
-					DROP TRANSFORM FOR integer LANGUAGE sql CASCADE;"
-				;;
-		esac
-
-		# commit db3af9feb19f39827e916145f88fa5eca3130cb2
-		case $oldpgversion in
-			10????)
-				fix_sql="$fix_sql
-					DROP FUNCTION boxarea(box);"
-				fix_sql="$fix_sql
-					DROP FUNCTION funny_dup17();"
-				;;
-		esac
-
-		# commit cda6a8d01d391eab45c4b3e0043a1b2b31072f5f
-		case $oldpgversion in
-			10????)
-				fix_sql="$fix_sql
-					DROP TABLE abstime_tbl;"
-				fix_sql="$fix_sql
-					DROP TABLE reltime_tbl;"
-				fix_sql="$fix_sql
-					DROP TABLE tinterval_tbl;"
-				;;
-		esac
-
-		# Various things removed for v14
-		case $oldpgversion in
-			906??|10????|11????|12????|13????)
-				fix_sql="$fix_sql
-					DROP AGGREGATE first_el_agg_any(anyelement);"
-				;;
-		esac
-		case $oldpgversion in
-			90[56]??|10????|11????|12????|13????)
-				# commit 9e38c2bb5 and 97f73a978
-				# fix_sql="$fix_sql DROP AGGREGATE array_larger_accum(anyarray);"
-				fix_sql="$fix_sql
-					DROP AGGREGATE array_cat_accum(anyarray);"
-
-				# commit 76f412ab3
-				#fix_sql="$fix_sql DROP OPERATOR @#@(bigint,NONE);"
-				fix_sql="$fix_sql
-					DROP OPERATOR @#@(NONE,bigint);"
-				;;
-		esac
-
-		# commit 578b22971: OIDS removed in v12
-		case $oldpgversion in
-			804??|9????|10????|11????)
-				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=$?
+		psql -X -d regression -f "test-upgrade.sql" || psql_fix_sql_status=$?
 	fi
 
 	echo "fix_sql: $oldpgversion: $fix_sql" >&2
-- 
2.17.0


--EuxKj2iCbKjpUGkD--





view thread (9+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: [PATCH v5 4/4] Move pg_upgrade kludges to sql script
  In-Reply-To: <no-message-id-1863716@localhost>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox