Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd83d922

Browse files
committed
bring xact events back
1 parent0e5b8ef commitd83d922

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

‎src/backend/access/transam/twophase.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1510,6 +1510,12 @@ FinishPreparedTransaction(const char *gid, bool isCommit)
15101510
LWLockAcquire(TwoPhaseStateLock,LW_EXCLUSIVE);
15111511
RemoveGXact(gxact);
15121512
LWLockRelease(TwoPhaseStateLock);
1513+
1514+
if (isCommit)
1515+
CallXactCallbacks(XACT_EVENT_COMMIT_PREPARED);
1516+
else
1517+
CallXactCallbacks(XACT_EVENT_ABORT_PREPARED);
1518+
15131519
MyLockedGxact=NULL;
15141520

15151521
pfree(buf);
@@ -2408,3 +2414,13 @@ PrepareRedoRemove(TransactionId xid, bool giveWarning)
24082414

24092415
return;
24102416
}
2417+
2418+
2419+
/*
2420+
* Return identified of current global transaction
2421+
*/
2422+
constchar*
2423+
GetLockedGlobalTransactionId(void)
2424+
{
2425+
returnMyLockedGxact ?MyLockedGxact->gid :NULL;
2426+
}

‎src/backend/access/transam/xact.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,6 @@ static void AtCommit_Memory(void);
306306
staticvoidAtStart_Cache(void);
307307
staticvoidAtStart_Memory(void);
308308
staticvoidAtStart_ResourceOwner(void);
309-
staticvoidCallXactCallbacks(XactEventevent);
310309
staticvoidCallSubXactCallbacks(SubXactEventevent,
311310
SubTransactionIdmySubid,
312311
SubTransactionIdparentSubid);
@@ -1922,6 +1921,7 @@ StartTransaction(void)
19221921
*/
19231922
s->state=TRANS_INPROGRESS;
19241923

1924+
CallXactCallbacks(XACT_EVENT_START);
19251925
ShowTransactionState("StartTransaction");
19261926
}
19271927

@@ -3335,7 +3335,7 @@ UnregisterXactCallback(XactCallback callback, void *arg)
33353335
}
33363336
}
33373337

3338-
staticvoid
3338+
void
33393339
CallXactCallbacks(XactEventevent)
33403340
{
33413341
XactCallbackItem*item;

‎src/include/access/twophase.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,7 @@ extern void PrepareRedoAdd(char *buf, XLogRecPtr start_lsn,
5757
XLogRecPtrend_lsn);
5858
externvoidPrepareRedoRemove(TransactionIdxid,boolgiveWarning);
5959
externvoidrestoreTwoPhaseData(void);
60+
61+
externconstchar*GetLockedGlobalTransactionId(void);
62+
6063
#endif/* TWOPHASE_H */

‎src/include/access/xact.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,17 @@ extern intMyXactFlags;
9797
*/
9898
typedefenum
9999
{
100+
XACT_EVENT_START,
100101
XACT_EVENT_COMMIT,
101102
XACT_EVENT_PARALLEL_COMMIT,
102103
XACT_EVENT_ABORT,
103104
XACT_EVENT_PARALLEL_ABORT,
104105
XACT_EVENT_PREPARE,
105106
XACT_EVENT_PRE_COMMIT,
106107
XACT_EVENT_PARALLEL_PRE_COMMIT,
107-
XACT_EVENT_PRE_PREPARE
108+
XACT_EVENT_PRE_PREPARE,
109+
XACT_EVENT_COMMIT_PREPARED,
110+
XACT_EVENT_ABORT_PREPARED
108111
}XactEvent;
109112

110113
typedefvoid (*XactCallback) (XactEventevent,void*arg);
@@ -405,5 +408,6 @@ extern void ParseAbortRecord(uint8 info, xl_xact_abort *xlrec, xl_xact_parsed_ab
405408
externvoidEnterParallelMode(void);
406409
externvoidExitParallelMode(void);
407410
externboolIsInParallelMode(void);
411+
externvoidCallXactCallbacks(XactEventevent);
408412

409413
#endif/* XACT_H */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp