From: Peter Geoghegan Date: Thu, 16 Jul 2026 22:08:41 +0000 (-0400) Subject: Use fake LSNs consistently in hash index AM. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=048067c04c6c0c0862f0e00c4ebe158ac41bda19;p=thirdparty%2Fpostgresql.git Use fake LSNs consistently in hash index AM. Defensively make sure that all hash index atomic actions use a fake LSN with an unlogged relation. Oversight in commit e5836f7b, which added fake LSN support to the hash index AM, but missed log_split_page. Author: Peter Geoghegan Reviewed-by: Ewan Young Discussion: https://postgr.es/m/CAH2-WzkC-opX8iS6X=a470DDC31er_x5rzPw=HjRxha9N8brZw@mail.gmail.com Backpatch-through: 19 --- diff --git a/src/backend/access/hash/hashpage.c b/src/backend/access/hash/hashpage.c index 8099b0d021f..c50f9a48520 100644 --- a/src/backend/access/hash/hashpage.c +++ b/src/backend/access/hash/hashpage.c @@ -1477,18 +1477,20 @@ _hash_finish_split(Relation rel, Buffer metabuf, Buffer obuf, Bucket obucket, static void log_split_page(Relation rel, Buffer buf) { + XLogRecPtr recptr; + if (RelationNeedsWAL(rel)) { - XLogRecPtr recptr; - XLogBeginInsert(); XLogRegisterBuffer(0, buf, REGBUF_FORCE_IMAGE | REGBUF_STANDARD); recptr = XLogInsert(RM_HASH_ID, XLOG_HASH_SPLIT_PAGE); - - PageSetLSN(BufferGetPage(buf), recptr); } + else + recptr = XLogGetFakeLSN(rel); + + PageSetLSN(BufferGetPage(buf), recptr); } /*