From c4b5fce12a754b81b5860b6d8e3bfb455724d077 Mon Sep 17 00:00:00 2001 From: ChangAo Chen Date: Mon, 13 Apr 2026 16:24:51 +0800 Subject: [PATCH v1] Keep the return value of XLogInsertRecord() for XLOG_SWITCH record consistent with other records --- src/backend/access/transam/xlog.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index f85b5286086..4085d35d85a 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -1026,18 +1026,8 @@ XLogInsertRecord(XLogRecData *rdata, * xlog-switch record. */ if (inserted) - { - EndPos = StartPos + SizeOfXLogRecord; - if (StartPos / XLOG_BLCKSZ != EndPos / XLOG_BLCKSZ) - { - uint64 offset = XLogSegmentOffset(EndPos, wal_segment_size); - - if (offset == EndPos % XLOG_BLCKSZ) - EndPos += SizeOfXLogLongPHD; - else - EndPos += SizeOfXLogShortPHD; - } - } + EndPos = XLogBytePosToEndRecPtr(XLogRecPtrToBytePos(StartPos) + + MAXALIGN(SizeOfXLogRecord)); } #ifdef WAL_DEBUG -- 2.34.1