Just upload all the patches together. Xiaoran Wang <fanfuxiao...@gmail.com> 于2025年6月9日周一 18:25写道:
> > > Steven Niu <niush...@gmail.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
0001-Refactor-Extract-XLogRecord-info.patch
Description: Binary data
0002-Add-a-macro-XLogRecGetRmgrInfo.patch
Description: Binary data