From 519443162dce52a3b10372338401d63084f720b8 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 9 Mar 2024 16:20:44 -0500 Subject: [PATCH] Simplify and merge unwanted-module drop logic in AdjustUpgrade.pm. In be7800674 and followups, we failed to notice that there was already a better way to do it: instead of using DROP DATABASE IF EXISTS, we can check the list of existing DBs. Also, there seems no reason not to merge this into the pre-existing code for getting rid of unwanted module databases. Discussion: https://postgr.es/m/1066872.1710006597@sss.pgh.pa.us --- .../perl/PostgreSQL/Test/AdjustUpgrade.pm | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm index 250aa001cf..5be918229e 100644 --- a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm +++ b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm @@ -86,7 +86,7 @@ sub adjust_database_contents # remove dbs of modules known to cause pg_upgrade to fail # anything not builtin and incompatible should clean up its own db - foreach my $bad_module ('test_ddl_deparse', 'tsearch2') + foreach my $bad_module ('adminpack', 'test_ddl_deparse', 'tsearch2') { if ($dbnames{"contrib_regression_$bad_module"}) { @@ -94,6 +94,12 @@ sub adjust_database_contents "drop database contrib_regression_$bad_module"); delete($dbnames{"contrib_regression_$bad_module"}); } + if ($dbnames{"regression_$bad_module"}) + { + _add_st($result, 'postgres', + "drop database regression_$bad_module"); + delete($dbnames{"regression_$bad_module"}); + } } # avoid no-path-to-downgrade-extension-version issues @@ -106,17 +112,6 @@ sub adjust_database_contents 'drop extension if exists test_ext7'); } - # we removed the adminpack extension in v17 - if ($old_version < 17) - { - _add_st($result, 'postgres', - 'drop database if exists contrib_regression_adminpack'); - _add_st($result, 'postgres', - 'drop database if exists regression_adminpack'); - delete($dbnames{'contrib_regression_adminpack'}); - delete($dbnames{'regression_adminpack'}); - } - # we removed this test-support function in v17 if ($old_version >= 15 && $old_version < 17) {