Skip to content

Commit 5e59584

Browse files
committed
In pg_upgrade, because toast table names can be mismatched with the heap
oid on 8.4, modify the toast name comparison test to only apply to old 9.0+ servers. (The test was previously 8.4+.) Backpatch to 9.1.X.
1 parent a32dd16 commit 5e59584

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

contrib/pg_upgrade/info.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,15 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
5757
old_db->db_name, old_rel->reloid, new_rel->reloid);
5858

5959
/*
60-
* In pre-8.4, TOAST table names change during CLUSTER; in >= 8.4
61-
* TOAST relation names always use heap table oids, hence we cannot
62-
* check relation names when upgrading from pre-8.4.
60+
* TOAST table names initially match the heap pg_class oid.
61+
* In pre-8.4, TOAST table names change during CLUSTER; in pre-9.0,
62+
* TOAST table names change during ALTER TABLE ALTER COLUMN SET TYPE.
63+
* In >= 9.0, TOAST relation names always use heap table oids, hence
64+
* we cannot check relation names when upgrading from pre-9.0.
65+
* Clusters upgraded to 9.0 will get matching TOAST names.
6366
*/
6467
if (strcmp(old_rel->nspname, new_rel->nspname) != 0 ||
65-
((GET_MAJOR_VERSION(old_cluster.major_version) >= 804 ||
68+
((GET_MAJOR_VERSION(old_cluster.major_version) >= 900 ||
6669
strcmp(old_rel->nspname, "pg_toast") != 0) &&
6770
strcmp(old_rel->relname, new_rel->relname) != 0))
6871
pg_log(PG_FATAL, "Mismatch of relation names in database \"%s\": "

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy