@@ -41,11 +41,10 @@ transfer_all_new_dbs(DbInfoArr *old_db_arr,
4141
4242/* Scan the old cluster databases and transfer their files */
4343for (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 ;
4545old_dbnum ++ ,new_dbnum ++ )
4646{
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 ;
4948FileNameMap * mappings ;
5049int n_maps ;
5150pageCnvCtx * pageConverter = NULL ;
@@ -55,13 +54,16 @@ transfer_all_new_dbs(DbInfoArr *old_db_arr,
5554 *but not in the old, e.g. "postgres". (The user might
5655 *have removed the 'postgres' database from the old cluster.)
5756 */
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+ }
6163
62- if (strcmp ( old_db -> db_name , new_db -> db_name ) != 0 )
63- pg_log (PG_FATAL ,"oldand 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 ,"olddatabase \"%s\" not found in the newcluster \n" ,
66+ old_db -> db_name );
6567
6668n_maps = 0 ;
6769mappings = gen_db_file_maps (old_db ,new_db ,& n_maps ,old_pgdata ,