Skip to content

Commit

Permalink
Fix comments atop ReorderBufferAddInvalidations.
Browse files Browse the repository at this point in the history
The comments atop seem to indicate that we always accumulate invalidation
messages in a top-level transaction which is neither required nor matches
with the code.

Author: Amit Kapila
Reviewd by: Masahiko Sawada
Backpatch-through: 14, where it was introduced in commit c55040c
Discussion: https://postgr.es/m/CAA4eK1LxGgnUroPz8STb6OfjVU1yaHoSA+T63URwmGCLdMJ0LA@mail.gmail.com
  • Loading branch information
Amit Kapila committed Nov 10, 2022
1 parent 9e03211 commit fc0d1ec
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions src/backend/replication/logical/reorderbuffer.c
Expand Up @@ -3197,16 +3197,17 @@ ReorderBufferAddNewTupleCids(ReorderBuffer *rb, TransactionId xid,
}

/*
* Setup the invalidation of the toplevel transaction.
* Accumulate the invalidations for executing them later.
*
* This needs to be called for each XLOG_XACT_INVALIDATIONS message and
* accumulates all the invalidation messages in the toplevel transaction as
* well as in the form of change in reorder buffer. We require to record it in
* form of the change so that we can execute only the required invalidations
* instead of executing all the invalidations on each CommandId increment. We
* also need to accumulate these in the toplevel transaction because in some
* cases we skip processing the transaction (see ReorderBufferForget), we need
* to execute all the invalidations together.
* accumulates all the invalidation messages in the toplevel transaction, if
* available, otherwise in the current transaction, as well as in the form of
* change in reorder buffer. We require to record it in form of the change
* so that we can execute only the required invalidations instead of executing
* all the invalidations on each CommandId increment. We also need to
* accumulate these in the txn buffer because in some cases where we skip
* processing the transaction (see ReorderBufferForget), we need to execute
* all the invalidations together.
*/
void
ReorderBufferAddInvalidations(ReorderBuffer *rb, TransactionId xid,
Expand All @@ -3222,8 +3223,9 @@ ReorderBufferAddInvalidations(ReorderBuffer *rb, TransactionId xid,
oldcontext = MemoryContextSwitchTo(rb->context);

/*
* Collect all the invalidations under the top transaction so that we can
* execute them all together. See comment atop this function
* Collect all the invalidations under the top transaction, if available,
* so that we can execute them all together. See comments atop this
* function.
*/
if (txn->toptxn)
txn = txn->toptxn;
Expand Down

0 comments on commit fc0d1ec

Please sign in to comment.