v2-0002-Use-MAXFNAMELEN-for-WAL-file-names-instead-of-MAX.patch

application/octet-stream

Filename: v2-0002-Use-MAXFNAMELEN-for-WAL-file-names-instead-of-MAX.patch
Type: application/octet-stream
Part: 1
Message: Assorted fixes related to WAL files (was: Use XLogFromFileName() in pg_resetwal to parse position from WAL file)

Patch

Format: format-patch
Series: patch v2-0002
Subject: Use MAXFNAMELEN for WAL file names instead of MAXPGPATH
File+
src/backend/access/transam/xlogarchive.c 2 2
src/bin/pg_basebackup/receivelog.c 1 1
src/bin/pg_waldump/pg_waldump.c 2 2
From abe765e81382bc0e56619cc2058d48db5a21459b Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Tue, 4 Oct 2022 06:35:01 +0000
Subject: [PATCH v2] Use MAXFNAMELEN for WAL file names instead of MAXPGPATH

MAXFNAMELEN (64 bytes) is typically meant to be used for all WAL
file names across the code base. Because the WAL file names in
postgres can't be bigger than 64 bytes, in fact, not more than
XLOG_FNAME_LEN (24 bytes) but there are suffixes, timeline history
files etc. To accommodate all of that MAXFNAMELEN is introduced.

There are some places in the code base that still use MAXPGPATH
(1024 bytes) for WAL file names which is an unnecessary wastage of
stack memory.

Replace MAXPGPATH with MAXFNAMELEN for WAL file names for
consistency across the code base and a bit of space savings.
---
 src/backend/access/transam/xlogarchive.c | 4 ++--
 src/bin/pg_basebackup/receivelog.c       | 2 +-
 src/bin/pg_waldump/pg_waldump.c          | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/backend/access/transam/xlogarchive.c b/src/backend/access/transam/xlogarchive.c
index e2b7176f2f..2d499bb665 100644
--- a/src/backend/access/transam/xlogarchive.c
+++ b/src/backend/access/transam/xlogarchive.c
@@ -57,7 +57,7 @@ RestoreArchivedFile(char *path, const char *xlogfname,
 {
 	char		xlogpath[MAXPGPATH];
 	char	   *xlogRestoreCmd;
-	char		lastRestartPointFname[MAXPGPATH];
+	char		lastRestartPointFname[MAXFNAMELEN];
 	int			rc;
 	struct stat stat_buf;
 	XLogSegNo	restartSegNo;
@@ -292,7 +292,7 @@ ExecuteRecoveryCommand(const char *command, const char *commandName,
 					   bool failOnSignal, uint32 wait_event_info)
 {
 	char		xlogRecoveryCmd[MAXPGPATH];
-	char		lastRestartPointFname[MAXPGPATH];
+	char		lastRestartPointFname[MAXFNAMELEN];
 	char	   *dp;
 	char	   *endp;
 	const char *sp;
diff --git a/src/bin/pg_basebackup/receivelog.c b/src/bin/pg_basebackup/receivelog.c
index 9c71323d70..3e1561e4dd 100644
--- a/src/bin/pg_basebackup/receivelog.c
+++ b/src/bin/pg_basebackup/receivelog.c
@@ -93,7 +93,7 @@ open_walfile(StreamCtl *stream, XLogRecPtr startpoint)
 	char	   *fn;
 	ssize_t		size;
 	XLogSegNo	segno;
-	char		walfile_name[MAXPGPATH];
+	char		walfile_name[MAXFNAMELEN];
 
 	XLByteToSeg(startpoint, segno, WalSegSz);
 	XLogFileName(walfile_name, stream->timeline, segno, WalSegSz);
diff --git a/src/bin/pg_waldump/pg_waldump.c b/src/bin/pg_waldump/pg_waldump.c
index 9993378ca5..079b3c155d 100644
--- a/src/bin/pg_waldump/pg_waldump.c
+++ b/src/bin/pg_waldump/pg_waldump.c
@@ -296,7 +296,7 @@ WALDumpOpenSegment(XLogReaderState *state, XLogSegNo nextSegNo,
 				   TimeLineID *tli_p)
 {
 	TimeLineID	tli = *tli_p;
-	char		fname[MAXPGPATH];
+	char		fname[MAXFNAMELEN];
 	int			tries;
 
 	XLogFileName(fname, tli, nextSegNo, state->segcxt.ws_segsize);
@@ -367,7 +367,7 @@ WALDumpReadPage(XLogReaderState *state, XLogRecPtr targetPagePtr, int reqLen,
 				 &errinfo))
 	{
 		WALOpenSegment *seg = &errinfo.wre_seg;
-		char		fname[MAXPGPATH];
+		char		fname[MAXFNAMELEN];
 
 		XLogFileName(fname, seg->ws_tli, seg->ws_segno,
 					 state->segcxt.ws_segsize);
-- 
2.34.1