Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 2e9633c

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+.)
1 parent 39be695 commit 2e9633c

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
@@ -55,12 +55,15 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
5555
old_db->db_name, old_rel->reloid, new_rel->reloid);
5656

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

0 commit comments

Comments
 (0)