From: | Xiaoran Wang <fanfuxiaoran(at)gmail(dot)com> |
---|---|
To: | Steven Niu <niushiji(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: [PATCH] Refactor: Extract XLogRecord info |
Date: | 2025-06-09 10:30:47 |
Message-ID: | CAGjhLkPZ8d1R14SXQ8JK2nFBJmMrms=Q2PLGfusCx_UKXxFEOA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
Attachment | Content-Type | Size |
---|---|---|
0001-Refactor-Extract-XLogRecord-info.patch | application/octet-stream | 38.2 KB |
0002-Add-a-macro-XLogRecGetRmgrInfo.patch | application/octet-stream | 29.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Antonin Houska | 2025-06-09 10:35:57 | Re: why there is not VACUUM FULL CONCURRENTLY? |
Previous Message | Xiaoran Wang | 2025-06-09 10:25:54 | Re: [PATCH] Refactor: Extract XLogRecord info |