@ -208,8 +208,8 @@ HotStandbyState standbyState = STANDBY_DISABLED;
static XLogRecPtr LastRec ;
static XLogRecPtr LastRec ;
/* Local copy of WalRcv->receiv edUpto */
/* Local copy of WalRcv->flush edUpto */
static XLogRecPtr receiv edUpto = 0 ;
static XLogRecPtr flush edUpto = 0 ;
static TimeLineID receiveTLI = 0 ;
static TimeLineID receiveTLI = 0 ;
/*
/*
@ -9363,7 +9363,7 @@ CreateRestartPoint(int flags)
* Retreat _logSegNo using the current end of xlog replayed or received ,
* Retreat _logSegNo using the current end of xlog replayed or received ,
* whichever is later .
* whichever is later .
*/
*/
receivePtr = GetWalRcvWrite RecPtr ( NULL , NULL ) ;
receivePtr = GetWalRcvFlush RecPtr ( NULL , NULL ) ;
replayPtr = GetXLogReplayRecPtr ( & replayTLI ) ;
replayPtr = GetXLogReplayRecPtr ( & replayTLI ) ;
endptr = ( receivePtr < replayPtr ) ? replayPtr : receivePtr ;
endptr = ( receivePtr < replayPtr ) ? replayPtr : receivePtr ;
KeepLogSeg ( endptr , & _logSegNo ) ;
KeepLogSeg ( endptr , & _logSegNo ) ;
@ -11856,7 +11856,7 @@ retry:
/* See if we need to retrieve more data */
/* See if we need to retrieve more data */
if ( readFile < 0 | |
if ( readFile < 0 | |
( readSource = = XLOG_FROM_STREAM & &
( readSource = = XLOG_FROM_STREAM & &
receiv edUpto < targetPagePtr + reqLen ) )
flush edUpto < targetPagePtr + reqLen ) )
{
{
if ( ! WaitForWALToBecomeAvailable ( targetPagePtr + reqLen ,
if ( ! WaitForWALToBecomeAvailable ( targetPagePtr + reqLen ,
private - > randAccess ,
private - > randAccess ,
@ -11887,10 +11887,10 @@ retry:
*/
*/
if ( readSource = = XLOG_FROM_STREAM )
if ( readSource = = XLOG_FROM_STREAM )
{
{
if ( ( ( targetPagePtr ) / XLOG_BLCKSZ ) ! = ( receiv edUpto / XLOG_BLCKSZ ) )
if ( ( ( targetPagePtr ) / XLOG_BLCKSZ ) ! = ( flush edUpto / XLOG_BLCKSZ ) )
readLen = XLOG_BLCKSZ ;
readLen = XLOG_BLCKSZ ;
else
else
readLen = XLogSegmentOffset ( receiv edUpto, wal_segment_size ) -
readLen = XLogSegmentOffset ( flush edUpto, wal_segment_size ) -
targetPageOff ;
targetPageOff ;
}
}
else
else
@ -12305,7 +12305,7 @@ WaitForWALToBecomeAvailable(XLogRecPtr RecPtr, bool randAccess,
RequestXLogStreaming ( tli , ptr , PrimaryConnInfo ,
RequestXLogStreaming ( tli , ptr , PrimaryConnInfo ,
PrimarySlotName ,
PrimarySlotName ,
wal_receiver_create_temp_slot ) ;
wal_receiver_create_temp_slot ) ;
receiv edUpto = 0 ;
flush edUpto = 0 ;
}
}
/*
/*
@ -12329,14 +12329,14 @@ WaitForWALToBecomeAvailable(XLogRecPtr RecPtr, bool randAccess,
* XLogReceiptTime will not advance , so the grace time
* XLogReceiptTime will not advance , so the grace time
* allotted to conflicting queries will decrease .
* allotted to conflicting queries will decrease .
*/
*/
if ( RecPtr < receiv edUpto)
if ( RecPtr < flush edUpto)
havedata = true ;
havedata = true ;
else
else
{
{
XLogRecPtr latestChunkStart ;
XLogRecPtr latestChunkStart ;
receivedUpto = GetWalRcvWrite RecPtr( & latestChunkStart , & receiveTLI ) ;
flushedUpto = GetWalRcvFlush RecPtr( & latestChunkStart , & receiveTLI ) ;
if ( RecPtr < receiv edUpto & & receiveTLI = = curFileTLI )
if ( RecPtr < flush edUpto & & receiveTLI = = curFileTLI )
{
{
havedata = true ;
havedata = true ;
if ( latestChunkStart < = RecPtr )
if ( latestChunkStart < = RecPtr )