src/backend/replication/logical/reorderbuffer.c
void
ReorderBufferImmediateInvalidation(ReorderBuffer *rb, uint32 ninvalidations,
								   SharedInvalidationMessage *invalidations)
{
	bool		use_subtxn = IsTransactionOrTransactionBlock();
	int			i;

	if (use_subtxn)
		BeginInternalSubTransaction("replay");

	/*
	 * Force invalidations to happen outside of a valid transaction - that way
	 * entries will just be marked as invalid without accessing the catalog.
	 * That's advantageous because we don't need to setup the full state
	 * necessary for catalog access.
	 */
	if (use_subtxn)
		AbortCurrentTransaction();

	for (i = 0; i < ninvalidations; i++)
		LocalExecuteInvalidationMessage(&invalidations[i]);

	if (use_subtxn)
		RollbackAndReleaseCurrentSubTransaction();
}
/*
 * Execute invalidations happening outside the context of a decoded
 * transaction. That currently happens either for xid-less commits
 * (c.f. RecordTransactionCommit()) or for invalidations in uninteresting
 * transactions (via ReorderBufferForget()).
 */
Execute invalidations happening outside the context of a decoded
transaction. That currently happens either for xid-less commits
(c.f. RecordTransactionCommit()) or for invalidations in uninteresting
transactions (via ReorderBufferForget()).
Execute invalidations happening outside the context of a decoded transaction . That currently happens either for xid - less commits ( c . f . RecordTransactionCommit () ) or for invalidations in uninteresting transactions ( via ReorderBufferForget () ) .
void
ReorderBufferImmediateInvalidation(ReorderBuffer *rb, uint32 ninvalidations,
								   SharedInvalidationMessage *invalidations)
{
	bool		use_subtxn = IsTransactionOrTransactionBlock();
	int			i;
	if (use_subtxn)
		BeginInternalSubTransaction("replay");
	if (use_subtxn)
		AbortCurrentTransaction();
	for (i = 0; i < ninvalidations; i++)
		LocalExecuteInvalidationMessage(&invalidations[i]);
	if (use_subtxn)
		RollbackAndReleaseCurrentSubTransaction();
}
void ReorderBufferImmediateInvalidation ( ReorderBuffer * rb , uint32 ninvalidations , SharedInvalidationMessage * invalidations ) { bool use_subtxn = IsTransactionOrTransactionBlock ( ) ; int i ; if ( use_subtxn ) BeginInternalSubTransaction ( " " ) ; if ( use_subtxn ) AbortCurrentTransaction ( ) ; for ( i = 0 ; i < ninvalidations ; i ++ ) LocalExecuteInvalidationMessage ( & invalidations [ i ] ) ; if ( use_subtxn ) RollbackAndReleaseCurrentSubTransaction ( ) ; }
Execute invalidations happening outside the context of a decoded
 transaction.
Execute invalidations happening outside the context of a decoded transaction .
/*
	 * Force invalidations to happen outside of a valid transaction - that way
	 * entries will just be marked as invalid without accessing the catalog.
	 * That's advantageous because we don't need to setup the full state
	 * necessary for catalog access.
	 */