From f327e2a472a797b9fe7742911027100780bfa939 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 6 Oct 2026 21:16:52 -0400 Subject: [PATCH] Don't attempt to upgrade bpchar indexes from versions before 14. As of a32b8dc98 and friends, amcheck will complain about bpchar indexes that claim to allow de-duplication. This causes our cross-version-upgrade tests to fail when upgrading from a version that lacks those commits, since there are some such indexes in the core regression tests. Drop such indexes from the upgrade source database. (oidvector indexes would be problematic too, but there aren't any user-defined indexes on oidvector in our tests.) Author: Peter Geoghegan Reviewed-by: Tom Lane Discussion: https://postgr.es/m/CAH2-Wzk-oO3HjLaByo8Vpse6Tpha1mqAW8DFShh-kS-Wo59ugA@mail.gmail.com Backpatch-through: 14 --- .../perl/PostgreSQL/Test/AdjustUpgrade.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm index d4e64ddce3b..3ba962f47c5 100644 --- a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm +++ b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm @@ -106,6 +106,25 @@ sub adjust_database_contents 'drop extension if exists test_ext7'); } + # We can no longer upgrade bpchar indexes that claim deduplication ability + # (amcheck will complain about them), so drop them if source is pre-v14. + if ($old_version < 14) + { + if ($dbnames{"regression"}) + { + _add_st($result, 'regression', + 'drop index if exists public.hslot_hubname', + 'drop index if exists public.hslot_name', + 'drop index if exists public.hub_name', + 'drop index if exists public.iface_name', + 'drop index if exists public.phone_name', + 'drop index if exists public.pline_name', + 'drop index if exists public.pslot_name', + 'drop index if exists public.room_rno', + 'drop index if exists public.wslot_name'); + } + } + # stuff not supported from release 16 if ($old_version >= 12 && $old_version < 16) {