]> granicus.if.org Git - postgresql/commitdiff
Reset minRecoveryPoint at checkpoints, so that we don't uselessly update
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 30 Dec 2009 08:37:23 +0000 (08:37 +0000)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 30 Dec 2009 08:37:23 +0000 (08:37 +0000)
it in the control file at crash recovery following an archive recovery.

Per Fujii Masao and subsequent discussion.

src/backend/access/transam/xlog.c

index 212d5a416ec13d7e2a54b8e9a8a9290473d8df71..5d18e1a3efaae0cd8a2ba0cd9f650c09929019d3 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.345.2.5 2009/09/13 18:32:17 heikki Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.345.2.6 2009/12/30 08:37:23 heikki Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -6659,6 +6659,8 @@ CreateCheckPoint(int flags)
        ControlFile->checkPoint = ProcLastRecPtr;
        ControlFile->checkPointCopy = checkPoint;
        ControlFile->time = (pg_time_t) time(NULL);
+       /* crash recovery should always recover to the end of WAL */
+       MemSet(&ControlFile->minRecoveryPoint, 0, sizeof(XLogRecPtr));
        UpdateControlFile();
        LWLockRelease(ControlFileLock);