diff --git a/src/backend/access/transam/timeline.c b/src/backend/access/transam/timeline.c index 51b37ca8f8c..921da62c22a 100644 --- a/src/backend/access/transam/timeline.c +++ b/src/backend/access/transam/timeline.c @@ -92,7 +92,7 @@ readTimeLineHistory(TimeLineID targetTLI) return list_make1(entry); } - if (InArchiveRecovery) + if (ArchiveRecoveryRequested) { TLHistoryFileName(histfname, targetTLI); fromArchive = @@ -213,7 +213,7 @@ existsTimeLineHistory(TimeLineID probeTLI) if (probeTLI == 1) return false; - if (InArchiveRecovery) + if (ArchiveRecoveryRequested) { TLHistoryFileName(histfname, probeTLI); RestoreArchivedFile(path, histfname, "RECOVERYHISTORY", 0, false); @@ -316,7 +316,7 @@ writeTimeLineHistory(TimeLineID newTLI, TimeLineID parentTLI, /* * If a history file exists for the parent, copy it verbatim */ - if (InArchiveRecovery) + if (ArchiveRecoveryRequested) { TLHistoryFileName(histfname, parentTLI); RestoreArchivedFile(path, histfname, "RECOVERYHISTORY", 0, false); diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index d960bbcc208..a02eebcb27a 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -200,7 +200,7 @@ static int LocalXLogInsertAllowed = -1; * will switch to using offline XLOG archives as soon as we reach the end of * WAL in pg_xlog. */ -static bool ArchiveRecoveryRequested = false; +bool ArchiveRecoveryRequested = false; bool InArchiveRecovery = false; /* Was the last xlog file restored from archive, or local? */ @@ -4339,11 +4339,6 @@ readRecoveryCommandFile(void) */ if (rtliGiven) { - /* - * Temporarily set InArchiveRecovery, so that existsTimeLineHistory - * or findNewestTimeLine below will check the archive. - */ - InArchiveRecovery = true; if (rtli) { /* Timeline 1 does not have a history file, all else should */ @@ -4360,7 +4355,6 @@ readRecoveryCommandFile(void) recoveryTargetTLI = findNewestTimeLine(recoveryTargetTLI); recoveryTargetIsLatest = true; } - InArchiveRecovery = false; } FreeConfigVariables(head); diff --git a/src/include/access/xlog_internal.h b/src/include/access/xlog_internal.h index c996c3c3ad8..351bb31d56c 100644 --- a/src/include/access/xlog_internal.h +++ b/src/include/access/xlog_internal.h @@ -263,6 +263,7 @@ extern void GetOldestRestartPoint(XLogRecPtr *oldrecptr, TimeLineID *oldtli); * Exported for the functions in timeline.c and xlogarchive.c. Only valid * in the startup process. */ +extern bool ArchiveRecoveryRequested; extern bool InArchiveRecovery; extern bool StandbyMode; extern char *recoveryRestoreCommand;