From 4f1751879d34b35f6d33b338148d9ae7a57104d6 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 dbddd41bfca..7893e8bf704 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'); + } + } + # btree_gist inet/cidr indexes cannot be upgraded to v19 if ($old_version < 19) {