Re: [PATCH] Refactor: Extract XLogRecord info - Mailing list pgsql-hackers

From Steven Niu
Subject Re: [PATCH] Refactor: Extract XLogRecord info
Date
Msg-id CABBtG=f_ra5uX+U3VwfQ1B0qeozHTsrHgcKkgi2TDfyjWf4Tmg@mail.gmail.com
Whole thread Raw
In response to Re: [PATCH] Refactor: Extract XLogRecord info  (Xiaoran Wang <fanfuxiaoran@gmail.com>)
List pgsql-hackers
 Hi, Xiaoran,

I see. The code is checking if the bits other than rmgr bits, XLR_SPECIAL_REL_UPDATE and XLR_CHECK_CONSISTENCY are used.

Thanks for the explanation.

Steven  

Xiaoran Wang <fanfuxiaoran@gmail.com> 于2025年6月11日周三 10:13写道:


Steven Niu <niushiji@gmail.com> 于2025年6月10日周二 17:56写道:
I'm confused by the code of XLR_RMGR_INFO_MASK and XLR_INFO_MASK.

According to the definition of masks, the high 4 bits are for rmgr.

/*
 * The high 4 bits in xl_info may be used freely by rmgr. The
 * XLR_SPECIAL_REL_UPDATE and XLR_CHECK_CONSISTENCY bits can be passed by
 * XLogInsert caller. The rest are set internally by XLogInsert.
 */
#define XLR_INFO_MASK 0x0F
#define XLR_RMGR_INFO_MASK 0xF0


However, in function XLogInsert(), there is code:

/*
* The caller can set rmgr bits, XLR_SPECIAL_REL_UPDATE and
* XLR_CHECK_CONSISTENCY; the rest are reserved for use by me.
*/
if ((info & ~(XLR_RMGR_INFO_MASK |
 XLR_SPECIAL_REL_UPDATE |
 XLR_CHECK_CONSISTENCY)) != 0)
elog(PANIC, "invalid xlog info mask %02X", info);

XLogInsert only allows the  rmgr ,XLR_SPECIAL_REL_UPDATE and XLR_CHECK_CONSISTENCY
set in the info.
#define XLR_SPECIAL_REL_UPDATE 0x01
#define XLR_CHECK_CONSISTENCY 0x02

As the XLR_SPECIAL_REL_UPDATE and XLR_CHECK_CONSISTENCY are of the low 4 bits,
the above code is indicating the low 4 bits are for rmgr too?

No, only the high 4 bits are used for RMGR, see the code under directory 'src/backend/access/rmgrdesc'

 'XLR_SPECIAL_REL_UPDATE' and 'XLR_CHECK_CONSISTENCY' are not RMGR info, but they 
can be passed by XLogInsert caller.


Did I misunderstand something? 

Thanks,
Steven

--
Best regards !
Xiaoran Wang

pgsql-hackers by date:

Previous
From: Junwang Zhao
Date:
Subject: Re: Add a bound check to TidRangeEval
Next
From: Steven Niu
Date:
Subject: Re: [PATCH] Refactor: Extract XLogRecord info