Re: [PATCH] Refactor: Extract XLogRecord info
| От | Steven Niu |
|---|---|
| Тема | Re: [PATCH] Refactor: Extract XLogRecord info |
| Дата | |
| Msg-id | 60824124-862f-45a8-8630-919d1021c8cc@gmail.com обсуждение исходный текст |
| Ответ на | [PATCH] Refactor: Extract XLogRecord info (Xiaoran Wang <fanfuxiaoran@gmail.com>) |
| Ответы |
Re: [PATCH] Refactor: Extract XLogRecord info
Re: [PATCH] Refactor: Extract XLogRecord info |
| Список | pgsql-hackers |
Hi,
I like the idea of your change as it saves me out of converting-in-my-mind.
And I suggest to create a macro to do this job.
#define getRmgrInfo(info) (info & XLR_RMGR_INFO_MASK)
Then the code can become:
XLogRecGetInfo(record) & ~XLR_INFO_MASK;
-->
getRmgrInfo(XLogRecGetInfo(record));
Thanks,
Steven
在 2025/6/9 14:23, Xiaoran Wang 写道:
> Hi,
> I refactored the code of extracting XLogRecord info.
> In XLogRecord, the high 4 bits in xl_info is used by rmgr.
>
> typedef struct XLogRecord
> {
> uint32 xl_tot_len; /* total len of entire record */
> TransactionId xl_xid; /* xact id */
> XLogRecPtr xl_prev; /* ptr to previous record in log */
> uint8 xl_info; /* flag bits, see below */
> RmgrId xl_rmid; /* resource manager for this record */
> /* 2 bytes of padding here, initialize to zero */
> pg_crc32c xl_crc; /* CRC for this record */
>
> /* XLogRecordBlockHeaders and XLogRecordDataHeader follow, no
> padding */
>
> } XLogRecord;
>
> I found lots of the code to get the info as below
>
> XLogRecGetInfo(record) & ~XLR_INFO_MASK
>
> Actually, we can directly use XLR_RMGR_INFO_MASK(0xF0)
> instead of XLR_INFO_MASK(0x0F), which is easier to understand.
> Remove XLR_INFO_MASK as it is not used any more.
>
>
> --
> Best regards !
> Xiaoran Wang
В списке pgsql-hackers по дате отправления: