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 по дате отправления: