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

Commit 8a75980

Browse files
committed
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.
1 parent ac96b85 commit 8a75980

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

contrib/pg_upgrade/info.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
4040
int relnum;
4141
int num_maps = 0;
4242

43-
if (old_db->rel_arr.nrels != new_db->rel_arr.nrels)
44-
pg_log(PG_FATAL, "old and new databases \"%s\" have a different number of relations\n",
45-
old_db->db_name);
46-
4743
maps = (FileNameMap *) pg_malloc(sizeof(FileNameMap) *
4844
old_db->rel_arr.nrels);
4945

50-
for (relnum = 0; relnum < old_db->rel_arr.nrels; relnum++)
46+
for (relnum = 0; relnum < Min(old_db->rel_arr.nrels, new_db->rel_arr.nrels);
47+
relnum++)
5148
{
5249
RelInfo *old_rel = &old_db->rel_arr.rels[relnum];
5350
RelInfo *new_rel = &new_db->rel_arr.rels[relnum];
@@ -78,6 +75,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
7875
num_maps++;
7976
}
8077

78+
/* Do this check after the loop so hopefully we will produce a clearer error above */
79+
if (old_db->rel_arr.nrels != new_db->rel_arr.nrels)
80+
pg_log(PG_FATAL, "old and new databases \"%s\" have a different number of relations\n",
81+
old_db->db_name);
82+
8183
*nmaps = num_maps;
8284
return maps;
8385
}

0 commit comments

Comments
 (0)