Fix STOP WAL LOCATION in backup history files no to return the next

segment of XLOG_BACKUP_END record even if the the record is placed
at a segment boundary. Furthermore the previous implementation could
return nonexistent segment file name when the boundary is in segments
that has "FE" suffix; We never use segments with "FF" suffix.

Backpatch to 8.0, where hot backup was introduced.

Reported by Fujii Masao.
This commit is contained in:
Itagaki Takahiro 2010-02-19 01:08:27 +00:00
parent 8005df3c20
commit 26662b73ae

View File

@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.222.2.7 2008/05/13 20:53:58 mha Exp $ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.222.2.8 2010/02/19 01:08:27 itagaki Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -5757,7 +5757,7 @@ pg_stop_backup(PG_FUNCTION_ARGS)
INSERT_RECPTR(stoppoint, Insert, Insert->curridx); INSERT_RECPTR(stoppoint, Insert, Insert->curridx);
LWLockRelease(WALInsertLock); LWLockRelease(WALInsertLock);
XLByteToSeg(stoppoint, _logId, _logSeg); XLByteToPrevSeg(stoppoint, _logId, _logSeg);
XLogFileName(stopxlogfilename, ThisTimeLineID, _logId, _logSeg); XLogFileName(stopxlogfilename, ThisTimeLineID, _logId, _logSeg);
/* /*