|
7 | 7 | * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group |
8 | 8 | * Portions Copyright (c) 1994, Regents of the University of California |
9 | 9 | * |
10 | | - * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.322 2008/11/09 17:51:15 tgl Exp $ |
| 10 | + * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.323 2008/12/03 08:20:11 heikki Exp $ |
11 | 11 | * |
12 | 12 | *------------------------------------------------------------------------- |
13 | 13 | */ |
@@ -6674,6 +6674,8 @@ pg_stop_backup(PG_FUNCTION_ARGS) |
6674 | 6674 | charhistfilepath[MAXPGPATH]; |
6675 | 6675 | charstartxlogfilename[MAXFNAMELEN]; |
6676 | 6676 | charstopxlogfilename[MAXFNAMELEN]; |
| 6677 | +charlastxlogfilename[MAXFNAMELEN]; |
| 6678 | +charhistfilename[MAXFNAMELEN]; |
6677 | 6679 | uint32_logId; |
6678 | 6680 | uint32_logSeg; |
6679 | 6681 | FILE*lfp; |
@@ -6801,14 +6803,18 @@ pg_stop_backup(PG_FUNCTION_ARGS) |
6801 | 6803 | * we assume the admin wanted his backup to work completely. If you |
6802 | 6804 | * don't wish to wait, you can set statement_timeout. |
6803 | 6805 | */ |
6804 | | -BackupHistoryFileName(histfilepath,ThisTimeLineID,_logId,_logSeg, |
| 6806 | +XLByteToPrevSeg(stoppoint,_logId,_logSeg); |
| 6807 | +XLogFileName(lastxlogfilename,ThisTimeLineID,_logId,_logSeg); |
| 6808 | + |
| 6809 | +XLByteToSeg(startpoint,_logId,_logSeg); |
| 6810 | +BackupHistoryFileName(histfilename,ThisTimeLineID,_logId,_logSeg, |
6805 | 6811 | startpoint.xrecoff %XLogSegSize); |
6806 | 6812 |
|
6807 | 6813 | seconds_before_warning=60; |
6808 | 6814 | waits=0; |
6809 | 6815 |
|
6810 | | -while (XLogArchiveIsBusy(stopxlogfilename)|| |
6811 | | -XLogArchiveIsBusy(histfilepath)) |
| 6816 | +while (XLogArchiveIsBusy(lastxlogfilename)|| |
| 6817 | +XLogArchiveIsBusy(histfilename)) |
6812 | 6818 | { |
6813 | 6819 | CHECK_FOR_INTERRUPTS(); |
6814 | 6820 |
|
|