Re: [PATCH] Refactor: Extract XLogRecord info

From: Steven Niu <niushiji(at)gmail(dot)com>
To: Xiaoran Wang <fanfuxiaoran(at)gmail(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: [PATCH] Refactor: Extract XLogRecord info
Date: 2025-06-10 01:39:37
Message-ID: CABBtG=dHgfNfYVzY+KaKYP1Bv8DEuTtT_5RXS743QX_sPZYJ_w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

LGTM. I have no more comments.

Regards,
Steven

Xiaoran Wang <fanfuxiaoran(at)gmail(dot)com> 于2025年6月9日周一 18:31写道:

> Just upload all the patches together.
>
> Xiaoran Wang <fanfuxiaoran(at)gmail(dot)com> 于2025年6月9日周一 18:25写道:
>
>>
>>
>> Steven Niu <niushiji(at)gmail(dot)com> 于2025年6月9日周一 14:46写道:
>>
>>> 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));
>>>
>>
>> Good idea, found lots of 'XLogRecGetInfo(record) & ~XLR_INFO_MASK;'
>> in the code.
>>
>> I add a macro XLogRecRmgrGetInfo(record) in patch 0002.
>>
>>>
>>> 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
>>>
>>>
>>>
>>>
>>
>> --
>> Best regards !
>> Xiaoran Wang
>>
>
>
> --
> Best regards !
> Xiaoran Wang
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fabrízio de Royes Mello 2025-06-10 01:54:43 Re: [PATCH] Refactor: Extract XLogRecord info
Previous Message Shinya Kato 2025-06-10 00:43:10 Re: Extend COPY FROM with HEADER <integer> to skip multiple lines