diff --git a/src/gausskernel/storage/access/transam/xact.cpp b/src/gausskernel/storage/access/transam/xact.cpp index 9928ca956..e2c3ea975 100755 --- a/src/gausskernel/storage/access/transam/xact.cpp +++ b/src/gausskernel/storage/access/transam/xact.cpp @@ -8431,7 +8431,7 @@ void XactCleanExceptionSubTransaction(SubTransactionId head) AtSubAbort_Portals(s->subTransactionId, s->parent->subTransactionId, s->curTransactionOwner, s->parent->curTransactionOwner, true); - CallSubXactCallbacks(SUBXACT_EVENT_ABORT_SUB, s->subTransactionId, s->parent->subTransactionId); + CallSubXactCallbacks(SUBXACT_EVENT_CLEANUP_SUB, s->subTransactionId, s->parent->subTransactionId); ResourceOwnerRelease(s->curTransactionOwner, RESOURCE_RELEASE_BEFORE_LOCKS, false, false); ResourceOwnerRelease(s->curTransactionOwner, RESOURCE_RELEASE_AFTER_LOCKS, false, false); diff --git a/src/include/access/xact.h b/src/include/access/xact.h index 6995616af..d98f8749d 100644 --- a/src/include/access/xact.h +++ b/src/include/access/xact.h @@ -62,6 +62,7 @@ typedef void (*XactCallback)(XactEvent event, void* arg); typedef enum { SUBXACT_EVENT_START_SUB, SUBXACT_EVENT_COMMIT_SUB, + SUBXACT_EVENT_CLEANUP_SUB, SUBXACT_EVENT_ABORT_SUB } SubXactEvent;