]> granicus.if.org Git - postgresql/commitdiff
Fix thinko in previous commit.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 22 Feb 2013 11:07:02 +0000 (13:07 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 22 Feb 2013 11:12:43 +0000 (13:12 +0200)
We must still initialize minRecoveryPoint if we start straight with archive
recovery, e.g when recovering from a normal base backup taken with
pg_start/stop_backup. Otherwise we never consider the system consistent.

src/backend/access/transam/xlog.c

index 29d1f960c1450697641152dab178fe8824a36ea4..d960bbcc208a607e7a359de155e2f281913f907d 100644 (file)
@@ -5265,6 +5265,15 @@ StartupXLOG(void)
                ControlFile->prevCheckPoint = ControlFile->checkPoint;
                ControlFile->checkPoint = checkPointLoc;
                ControlFile->checkPointCopy = checkPoint;
+               if (InArchiveRecovery)
+               {
+                       /* initialize minRecoveryPoint if not set yet */
+                       if (ControlFile->minRecoveryPoint < checkPoint.redo)
+                       {
+                               ControlFile->minRecoveryPoint = checkPoint.redo;
+                               ControlFile->minRecoveryPointTLI = checkPoint.ThisTimeLineID;
+                       }
+               }
 
                /*
                 * Set backupStartPoint if we're starting recovery from a base backup.