mirror of
https://github.com/postgres/postgres.git
synced 2025-06-29 10:41:53 +03:00
Replace XLOG_INCLUDE_XID flag with a more localized flag.
Commit 0bead9af48
introduced XLOG_INCLUDE_XID flag to indicate that the
WAL record contains subXID-to-topXID association. It uses that flag later
to mark in CurrentTransactionState that top-xid is logged so that we
should not try to log it again with the next WAL record in the current
subtransaction. However, we can use a localized variable to pass that
information.
In passing, change the related function and variable names to make them
consistent with what the code is actually doing.
Author: Dilip Kumar
Reviewed-by: Alvaro Herrera, Amit Kapila
Discussion: https://postgr.es/m/E1mSoYz-0007Fh-D9@gemulon.postgresql.org
This commit is contained in:
@ -999,6 +999,9 @@ static void WALInsertLockUpdateInsertingAt(XLogRecPtr insertingAt);
|
||||
* 'flags' gives more in-depth control on the record being inserted. See
|
||||
* XLogSetRecordFlags() for details.
|
||||
*
|
||||
* 'topxid_included' tells whether the top-transaction id is logged along with
|
||||
* current subtransaction. See XLogRecordAssemble().
|
||||
*
|
||||
* The first XLogRecData in the chain must be for the record header, and its
|
||||
* data must be MAXALIGNed. XLogInsertRecord fills in the xl_prev and
|
||||
* xl_crc fields in the header, the rest of the header must already be filled
|
||||
@ -1014,7 +1017,8 @@ XLogRecPtr
|
||||
XLogInsertRecord(XLogRecData *rdata,
|
||||
XLogRecPtr fpw_lsn,
|
||||
uint8 flags,
|
||||
int num_fpi)
|
||||
int num_fpi,
|
||||
bool topxid_included)
|
||||
{
|
||||
XLogCtlInsert *Insert = &XLogCtl->Insert;
|
||||
pg_crc32c rdata_crc;
|
||||
@ -1169,6 +1173,13 @@ XLogInsertRecord(XLogRecData *rdata,
|
||||
|
||||
END_CRIT_SECTION();
|
||||
|
||||
/*
|
||||
* Mark top transaction id is logged (if needed) so that we should not try
|
||||
* to log it again with the next WAL record in the current subtransaction.
|
||||
*/
|
||||
if (topxid_included)
|
||||
MarkSubxactTopXidLogged();
|
||||
|
||||
/*
|
||||
* Update shared LogwrtRqst.Write, if we crossed page boundary.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user