@@ -403,6 +403,9 @@ do_merge(time_t backup_id)
403403 * full backup directory.
404404 * Remove unnecessary directories and files from full backup directory.
405405 * Update metadata of full backup to represent destination backup.
406+ *
407+ * TODO: stop relying on caller to provide valid parent_chain, make sure
408+ * that chain is ok.
406409 */
407410void
408411merge_chain (parray * parent_chain , pgBackup * full_backup , pgBackup * dest_backup )
@@ -481,8 +484,6 @@ merge_chain(parray *parent_chain, pgBackup *full_backup, pgBackup *dest_backup)
481484 }
482485 }
483486
484- /* TODO: Should we keep relying on caller to provide valid parent_chain? */
485-
486487 /* If destination backup compression algorithm differs from
487488 * full backup compression algorithm, then in-place merge is
488489 * not possible.
@@ -502,13 +503,19 @@ merge_chain(parray *parent_chain, pgBackup *full_backup, pgBackup *dest_backup)
502503 program_version_match = true;
503504 else
504505 elog (WARNING , "In-place merge is disabled because of program "
505- "versions mismatch" );
506+ "versions mismatch: backup %s was produced by version %s, "
507+ "but current program version is %s" ,
508+ base36enc (dest_backup -> start_time ),
509+ dest_backup -> program_version , PROGRAM_VERSION );
506510
507511 /* Construct path to database dir: /backup_dir/instance_name/FULL/database */
508512 join_path_components (full_database_dir , full_backup -> root_dir , DATABASE_DIR );
509513 /* Construct path to external dir: /backup_dir/instance_name/FULL/external */
510514 join_path_components (full_external_prefix , full_backup -> root_dir , EXTERNAL_DIR );
511515
516+ elog (INFO , "Validate parent chain for backup %s" ,
517+ base36enc (dest_backup -> start_time ));
518+
512519 /*
513520 * Validate or revalidate all members of parent chain
514521 * with sole exception of FULL backup. If it has MERGING status
0 commit comments