diff options
author | Michael Paquier <michael@paquier.xyz> | 2024-09-10 08:44:31 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2024-09-10 08:44:31 +0900 |
commit | fba49d5293b4455b25485450baf02af42bf543d7 (patch) | |
tree | cf9f0a6fce331fc4940bc66cdc8239a4be4fd46e /src | |
parent | bb7775234273268e8852068ee1a2eff9cd2a0020 (diff) | |
download | postgresql-fba49d5293b4455b25485450baf02af42bf543d7.tar.gz postgresql-fba49d5293b4455b25485450baf02af42bf543d7.zip |
Remove emode argument from XLogFileRead() and XLogFileReadAnyTLI()
This change makes the code slightly easier to reason about, because
there is actually no need to know if a specific caller of one of these
routines should fail hard on a PANIC, or just let it go through with a
DEBUG2.
The only caller of XLogFileReadAnyTLI() used DEBUG2, and XLogFileRead()
has never used its emode. This can be simplified since 1bb2558046cc
that has introduced XLogFileReadAnyTLI(), splitting both.
Author: Yugo Nagata
Discussion: https://postgr.es/m/20240906201043.a640f3b44e755d4db2b6943e@sraoss.co.jp
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/access/transam/xlogrecovery.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c index 178491f6f50..320b14add1a 100644 --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -430,9 +430,9 @@ static int emode_for_corrupt_record(int emode, XLogRecPtr RecPtr); static XLogRecord *ReadCheckpointRecord(XLogPrefetcher *xlogprefetcher, XLogRecPtr RecPtr, TimeLineID replayTLI); static bool rescanLatestTimeLine(TimeLineID replayTLI, XLogRecPtr replayLSN); -static int XLogFileRead(XLogSegNo segno, int emode, TimeLineID tli, +static int XLogFileRead(XLogSegNo segno, TimeLineID tli, XLogSource source, bool notfoundOk); -static int XLogFileReadAnyTLI(XLogSegNo segno, int emode, XLogSource source); +static int XLogFileReadAnyTLI(XLogSegNo segno, XLogSource source); static bool CheckForStandbyTrigger(void); static void SetPromoteIsTriggered(void); @@ -3780,7 +3780,7 @@ WaitForWALToBecomeAvailable(XLogRecPtr RecPtr, bool randAccess, * Try to restore the file from archive, or read an existing * file from pg_wal. */ - readFile = XLogFileReadAnyTLI(readSegNo, DEBUG2, + readFile = XLogFileReadAnyTLI(readSegNo, currentSource == XLOG_FROM_ARCHIVE ? XLOG_FROM_ANY : currentSource); if (readFile >= 0) @@ -3929,8 +3929,7 @@ WaitForWALToBecomeAvailable(XLogRecPtr RecPtr, bool randAccess, { if (!expectedTLEs) expectedTLEs = readTimeLineHistory(recoveryTargetTLI); - readFile = XLogFileRead(readSegNo, PANIC, - receiveTLI, + readFile = XLogFileRead(readSegNo, receiveTLI, XLOG_FROM_STREAM, false); Assert(readFile >= 0); } @@ -4201,7 +4200,7 @@ rescanLatestTimeLine(TimeLineID replayTLI, XLogRecPtr replayLSN) * Otherwise, it's assumed to be already available in pg_wal. */ static int -XLogFileRead(XLogSegNo segno, int emode, TimeLineID tli, +XLogFileRead(XLogSegNo segno, TimeLineID tli, XLogSource source, bool notfoundOk) { char xlogfname[MAXFNAMELEN]; @@ -4283,7 +4282,7 @@ XLogFileRead(XLogSegNo segno, int emode, TimeLineID tli, * This version searches for the segment with any TLI listed in expectedTLEs. */ static int -XLogFileReadAnyTLI(XLogSegNo segno, int emode, XLogSource source) +XLogFileReadAnyTLI(XLogSegNo segno, XLogSource source) { char path[MAXPGPATH]; ListCell *cell; @@ -4347,8 +4346,7 @@ XLogFileReadAnyTLI(XLogSegNo segno, int emode, XLogSource source) if (source == XLOG_FROM_ANY || source == XLOG_FROM_ARCHIVE) { - fd = XLogFileRead(segno, emode, tli, - XLOG_FROM_ARCHIVE, true); + fd = XLogFileRead(segno, tli, XLOG_FROM_ARCHIVE, true); if (fd != -1) { elog(DEBUG1, "got WAL segment from archive"); @@ -4360,8 +4358,7 @@ XLogFileReadAnyTLI(XLogSegNo segno, int emode, XLogSource source) if (source == XLOG_FROM_ANY || source == XLOG_FROM_PG_WAL) { - fd = XLogFileRead(segno, emode, tli, - XLOG_FROM_PG_WAL, true); + fd = XLogFileRead(segno, tli, XLOG_FROM_PG_WAL, true); if (fd != -1) { if (!expectedTLEs) @@ -4374,7 +4371,7 @@ XLogFileReadAnyTLI(XLogSegNo segno, int emode, XLogSource source) /* Couldn't find it. For simplicity, complain about front timeline */ XLogFilePath(path, recoveryTargetTLI, segno, wal_segment_size); errno = ENOENT; - ereport(emode, + ereport(DEBUG2, (errcode_for_file_access(), errmsg("could not open file \"%s\": %m", path))); return -1; |