@@ -40,14 +40,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
4040int relnum ;
4141int 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-
4743maps = (FileNameMap * )pg_malloc (sizeof (FileNameMap )*
4844old_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{
5249RelInfo * old_rel = & old_db -> rel_arr .rels [relnum ];
5350RelInfo * new_rel = & new_db -> rel_arr .rels [relnum ];
@@ -78,6 +75,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
7875num_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 ;
8284return maps ;
8385}