Skip to content

Commit 61d57b6

Browse files
committed
ptrack minor optimization
1 parent dc6b127 commit 61d57b6

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/backup.c

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,22 @@ do_backup_instance(void)
511511
pgBackupWriteBackupControlFile(&current);
512512
}
513513

514+
/*
515+
* It`s illegal to take PTRACK backup if LSN from ptrack_control() is not equal to
516+
* start_backup LSN of previous backup
517+
*/
518+
if (current.backup_mode == BACKUP_MODE_DIFF_PTRACK)
519+
{
520+
XLogRecPtr ptrack_lsn = get_last_ptrack_lsn();
521+
522+
if (ptrack_lsn > prev_backup->stop_lsn || ptrack_lsn == InvalidXLogRecPtr)
523+
{
524+
elog(ERROR, "LSN from ptrack_control %lx differs from STOP LSN of previous backup %lx.\n"
525+
"Create new full backup before an incremental one.",
526+
ptrack_lsn, prev_backup->stop_lsn);
527+
}
528+
}
529+
514530
/* Clear ptrack files for FULL and PAGE backup */
515531
if (current.backup_mode != BACKUP_MODE_DIFF_PTRACK && is_ptrack_enable)
516532
pg_ptrack_clear();
@@ -580,14 +596,6 @@ do_backup_instance(void)
580596

581597
if (current.backup_mode == BACKUP_MODE_DIFF_PTRACK)
582598
{
583-
XLogRecPtr ptrack_lsn = get_last_ptrack_lsn();
584-
585-
if (ptrack_lsn > prev_backup->stop_lsn || ptrack_lsn == InvalidXLogRecPtr)
586-
{
587-
elog(ERROR, "LSN from ptrack_control %lx differs from STOP LSN of previous backup %lx.\n"
588-
"Create new full backup before an incremental one.",
589-
ptrack_lsn, prev_backup->stop_lsn);
590-
}
591599
parray_qsort(backup_files_list, pgFileComparePath);
592600
make_pagemap_from_ptrack(backup_files_list);
593601
}

0 commit comments

Comments
 (0)