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 <pg@bowt.ie>
Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
Discussion: https://postgr.es/m/CAH2-WzkC-opX8iS6X=a470DDC31er_x5rzPw=HjRxha9N8brZw@mail.gmail.com
Backpatch-through: 19
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);
}
/*