@@ -40,14 +40,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
40
40
int relnum ;
41
41
int num_maps = 0 ;
42
42
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
-
47
43
maps = (FileNameMap * )pg_malloc (sizeof (FileNameMap )*
48
44
old_db -> rel_arr .nrels );
49
45
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 ++ )
51
48
{
52
49
RelInfo * old_rel = & old_db -> rel_arr .rels [relnum ];
53
50
RelInfo * new_rel = & new_db -> rel_arr .rels [relnum ];
@@ -78,6 +75,11 @@ gen_db_file_maps(DbInfo *old_db, DbInfo *new_db,
78
75
num_maps ++ ;
79
76
}
80
77
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
+
81
83
* nmaps = num_maps ;
82
84
return maps ;
83
85
}