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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy