]> granicus.if.org Git - postgresql/commitdiff
Fix STOP WAL LOCATION in backup history files no to return the next
authorItagaki Takahiro <itagaki.takahiro@gmail.com>
Fri, 19 Feb 2010 01:04:03 +0000 (01:04 +0000)
committerItagaki Takahiro <itagaki.takahiro@gmail.com>
Fri, 19 Feb 2010 01:04:03 +0000 (01:04 +0000)
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.

src/backend/access/transam/xlog.c

index 31f50ecb5025db6617d2a6f5c5cebc57b391fb59..106d39b760156ecc979344ffd536be743083925a 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.375 2010/02/17 04:19:39 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.376 2010/02/19 01:04:03 itagaki Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -8052,7 +8052,7 @@ pg_stop_backup(PG_FUNCTION_ARGS)
         */
        RequestXLogSwitch();
 
-       XLByteToSeg(stoppoint, _logId, _logSeg);
+       XLByteToPrevSeg(stoppoint, _logId, _logSeg);
        XLogFileName(stopxlogfilename, ThisTimeLineID, _logId, _logSeg);
 
        /* Use the log timezone here, not the session timezone */