aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/xlog.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2013-02-22 13:07:02 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2013-02-22 13:12:43 +0200
commit6c4f6664b201bea77eb6e3f813559e3911a5ef35 (patch)
treeae2d966d6d742a473e4eed8b291cfe41dac56c38 /src/backend/access/transam/xlog.c
parent6d06049493862f7f6b639035198fc817949723ae (diff)
downloadpostgresql-6c4f6664b201bea77eb6e3f813559e3911a5ef35.tar.gz
postgresql-6c4f6664b201bea77eb6e3f813559e3911a5ef35.zip
Fix thinko in previous commit.
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.
Diffstat (limited to 'src/backend/access/transam/xlog.c')
-rw-r--r--src/backend/access/transam/xlog.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 29d1f960c14..d960bbcc208 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -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.