|
|
|
@ -57,12 +57,15 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db, |
|
|
|
|
old_db->db_name, old_rel->reloid, new_rel->reloid); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* In pre-8.4, TOAST table names change during CLUSTER; in >= 8.4 |
|
|
|
|
* TOAST relation names always use heap table oids, hence we cannot |
|
|
|
|
* check relation names when upgrading from pre-8.4. |
|
|
|
|
* TOAST table names initially match the heap pg_class oid. |
|
|
|
|
* In pre-8.4, TOAST table names change during CLUSTER; in pre-9.0, |
|
|
|
|
* TOAST table names change during ALTER TABLE ALTER COLUMN SET TYPE. |
|
|
|
|
* In >= 9.0, TOAST relation names always use heap table oids, hence |
|
|
|
|
* we cannot check relation names when upgrading from pre-9.0. |
|
|
|
|
* Clusters upgraded to 9.0 will get matching TOAST names. |
|
|
|
|
*/ |
|
|
|
|
if (strcmp(old_rel->nspname, new_rel->nspname) != 0 || |
|
|
|
|
((GET_MAJOR_VERSION(old_cluster.major_version) >= 804 || |
|
|
|
|
((GET_MAJOR_VERSION(old_cluster.major_version) >= 900 || |
|
|
|
|
strcmp(old_rel->nspname, "pg_toast") != 0) && |
|
|
|
|
strcmp(old_rel->relname, new_rel->relname) != 0)) |
|
|
|
|
pg_log(PG_FATAL, "Mismatch of relation names in database \"%s\": " |
|
|
|
|