diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index ea37b0bbe8..c07d25903c 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -3204,16 +3204,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, @@ -3229,8 +3230,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;