@@ -41,11 +41,10 @@ transfer_all_new_dbs(DbInfoArr *old_db_arr,
41
41
42
42
/* Scan the old cluster databases and transfer their files */
43
43
for (old_dbnum = new_dbnum = 0 ;
44
- old_dbnum < old_db_arr -> ndbs && new_dbnum < new_db_arr -> ndbs ;
44
+ old_dbnum < old_db_arr -> ndbs ;
45
45
old_dbnum ++ , new_dbnum ++ )
46
46
{
47
- DbInfo * old_db = & old_db_arr -> dbs [old_dbnum ];
48
- DbInfo * new_db = & new_db_arr -> dbs [new_dbnum ];
47
+ DbInfo * old_db = & old_db_arr -> dbs [old_dbnum ], * new_db ;
49
48
FileNameMap * mappings ;
50
49
int n_maps ;
51
50
pageCnvCtx * pageConverter = NULL ;
@@ -55,13 +54,16 @@ transfer_all_new_dbs(DbInfoArr *old_db_arr,
55
54
* but not in the old, e.g. "postgres". (The user might
56
55
* have removed the 'postgres' database from the old cluster.)
57
56
*/
58
- while (strcmp (old_db -> db_name , new_db -> db_name ) != 0 &&
59
- new_dbnum < new_db_arr -> ndbs )
60
- new_db = & new_db_arr -> dbs [++ new_dbnum ];
57
+ for (; new_dbnum < new_db_arr -> ndbs ; new_dbnum ++ )
58
+ {
59
+ new_db = & new_db_arr -> dbs [new_dbnum ];
60
+ if (strcmp (old_db -> db_name , new_db -> db_name ) == 0 )
61
+ break ;
62
+ }
61
63
62
- if (strcmp ( old_db -> db_name , new_db -> db_name ) != 0 )
63
- pg_log (PG_FATAL , "old and new databases have different names: old \"%s\", new \"%s\" \n" ,
64
- old_db -> db_name , new_db -> db_name );
64
+ if (new_dbnum >= new_db_arr -> ndbs )
65
+ pg_log (PG_FATAL , "old database \"%s\" not found in the new cluster \n" ,
66
+ old_db -> db_name );
65
67
66
68
n_maps = 0 ;
67
69
mappings = gen_db_file_maps (old_db , new_db , & n_maps , old_pgdata ,
0 commit comments