From f8ab6c622466ad41dc08215ecbceebeeb104dec8 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 04844298ab3..0e4b970432c 100644 --- a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm +++ b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm @@ -112,6 +112,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'); + } + } + # refint was removed in v20 if ($old_version < 20) {