I wrote:
> Yeah.  I think best bet may be to drop the problematic table(s),
> as we've done for other de-supported DDL situations.  A quick
> experiment suggests that
> DROP TABLE gtest_normal_child;
> DROP TABLE gtest_normal_child2;
> should do it.

Some testing here confirms that the attached patch is enough to
un-break things for HEAD.  Since you mentioned you have some other
quasi-urgent BF fixes, maybe the thing to do is to roll up a release
now and then work on the bigger idea at leisure.

                        regards, tom lane

diff -pudr client-code-REL_15.orig/PGBuild/Modules/TestUpgradeXversion.pm client-code-REL_15/PGBuild/Modules/TestUpgradeXversion.pm
--- client-code-REL_15.orig/PGBuild/Modules/TestUpgradeXversion.pm	2022-12-31 09:15:03.000000000 -0500
+++ client-code-REL_15/PGBuild/Modules/TestUpgradeXversion.pm	2023-01-12 15:27:30.709009163 -0500
@@ -586,12 +586,17 @@ sub test_upgrade    ## no critic (Subrou
 		}
 	}
 
-	# can't upgrade aclitem in user tables from pre 16 to 16+
+	# stuff not supported from release 16
 	if (   ($this_branch gt 'REL_15_STABLE' || $this_branch eq 'HEAD')
 		&& ($oversion le 'REL_15_STABLE' && $oversion ne 'HEAD'))
 	{
-		my $prstmt = "alter table if exists public.tab_core_types
-                      drop column if exists aclitem";
+		# Can't upgrade aclitem in user tables from pre 16 to 16+.
+		# Also can't handle child tables with newly-generated columns.
+		my $prstmt = join(';',
+						  'alter table if exists public.tab_core_types
+						  drop column if exists aclitem',
+						  'drop table if exists public.gtest_normal_child',
+						  'drop table if exists public.gtest_normal_child2');
 
 		run_psql("$other_branch/inst/bin/psql", "-e", $prstmt,
 			"regression", "$upgrade_loc/$oversion-copy.log", 1);

Reply via email to