diff options
author | Bruce Momjian <bruce@momjian.us> | 2011-09-28 22:53:44 -0400 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2011-09-28 22:53:44 -0400 |
commit | 2e9633c3620d4cbaa44ae61180f73137d0c63ccf (patch) | |
tree | a85749c8c95186c197cf3eb521c99e47659ed941 | |
parent | 39be6957725bf4b9764a10cf368cc6ec8e21dec6 (diff) | |
download | postgresql-2e9633c3620d4cbaa44ae61180f73137d0c63ccf.tar.gz postgresql-2e9633c3620d4cbaa44ae61180f73137d0c63ccf.zip |
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+.)
-rw-r--r-- | contrib/pg_upgrade/info.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/contrib/pg_upgrade/info.c b/contrib/pg_upgrade/info.c index f66160fca17..7e177d45711 100644 --- a/contrib/pg_upgrade/info.c +++ b/contrib/pg_upgrade/info.c @@ -55,12 +55,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: database \"%s\", " |