diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2011-03-01 20:46:57 +0200 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2011-03-01 20:54:35 +0200 |
commit | 6eba5a7c57d1d61f46b6966026bf7bc07f8e087c (patch) | |
tree | ad88d9f8c60462809b00738f30dbf43849095b23 /src/backend/replication/walreceiverfuncs.c | |
parent | 47ad79122bc099c1f0ea8a7ae413fcd8d45e26a6 (diff) |
Change pg_last_xlog_receive_location() not to move backwards. That makes
it a lot more useful for determining which standby is most up-to-date,
for example. There was long discussions on whether overwriting existing
existing WAL makes sense to begin with, and whether we should do some more
extensive variable renaming, but this change nevertheless seems quite
uncontroversial.
Fujii Masao, reviewed by Jeff Janes, Robert Haas, Stephen Frost.
Diffstat (limited to 'src/backend/replication/walreceiverfuncs.c')
-rw-r--r-- | src/backend/replication/walreceiverfuncs.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/backend/replication/walreceiverfuncs.c b/src/backend/replication/walreceiverfuncs.c index 04c90049437..48ab503d893 100644 --- a/src/backend/replication/walreceiverfuncs.c +++ b/src/backend/replication/walreceiverfuncs.c @@ -199,8 +199,17 @@ RequestXLogStreaming(XLogRecPtr recptr, const char *conninfo) walrcv->walRcvState = WALRCV_STARTING; walrcv->startTime = now; - walrcv->receivedUpto = recptr; - walrcv->latestChunkStart = recptr; + /* + * If this is the first startup of walreceiver, we initialize + * receivedUpto and latestChunkStart to receiveStart. + */ + if (walrcv->receiveStart.xlogid == 0 && + walrcv->receiveStart.xrecoff == 0) + { + walrcv->receivedUpto = recptr; + walrcv->latestChunkStart = recptr; + } + walrcv->receiveStart = recptr; SpinLockRelease(&walrcv->mutex); |