Commit 8a759809 authored by Bruce Momjian's avatar Bruce Momjian

In pg_upgrade, improve error reporting when the number of relation

objects does not match between the old and new clusters.

Backpatch to 9.2.
parent ac96b851
...@@ -40,14 +40,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db, ...@@ -40,14 +40,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
int relnum; int relnum;
int num_maps = 0; int num_maps = 0;
if (old_db->rel_arr.nrels != new_db->rel_arr.nrels)
pg_log(PG_FATAL, "old and new databases \"%s\" have a different number of relations\n",
old_db->db_name);
maps = (FileNameMap *) pg_malloc(sizeof(FileNameMap) * maps = (FileNameMap *) pg_malloc(sizeof(FileNameMap) *
old_db->rel_arr.nrels); old_db->rel_arr.nrels);
for (relnum = 0; relnum < old_db->rel_arr.nrels; relnum++) for (relnum = 0; relnum < Min(old_db->rel_arr.nrels, new_db->rel_arr.nrels);
relnum++)
{ {
RelInfo *old_rel = &old_db->rel_arr.rels[relnum]; RelInfo *old_rel = &old_db->rel_arr.rels[relnum];
RelInfo *new_rel = &new_db->rel_arr.rels[relnum]; RelInfo *new_rel = &new_db->rel_arr.rels[relnum];
...@@ -78,6 +75,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db, ...@@ -78,6 +75,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
num_maps++; num_maps++;
} }
/* Do this check after the loop so hopefully we will produce a clearer error above */
if (old_db->rel_arr.nrels != new_db->rel_arr.nrels)
pg_log(PG_FATAL, "old and new databases \"%s\" have a different number of relations\n",
old_db->db_name);
*nmaps = num_maps; *nmaps = num_maps;
return maps; return maps;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment