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

Commit41a090d

Browse files
committed
bring xact events back
1 parentb4da6f1 commit41a090d

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
@@ -1509,6 +1509,12 @@ FinishPreparedTransaction(const char *gid, bool isCommit)
15091509
LWLockAcquire(TwoPhaseStateLock,LW_EXCLUSIVE);
15101510
RemoveGXact(gxact);
15111511
LWLockRelease(TwoPhaseStateLock);
1512+
1513+
if (isCommit)
1514+
CallXactCallbacks(XACT_EVENT_COMMIT_PREPARED);
1515+
else
1516+
CallXactCallbacks(XACT_EVENT_ABORT_PREPARED);
1517+
15121518
MyLockedGxact=NULL;
15131519

15141520
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
@@ -305,7 +305,6 @@ static void AtCommit_Memory(void);
305305
staticvoidAtStart_Cache(void);
306306
staticvoidAtStart_Memory(void);
307307
staticvoidAtStart_ResourceOwner(void);
308-
staticvoidCallXactCallbacks(XactEventevent);
309308
staticvoidCallSubXactCallbacks(SubXactEventevent,
310309
SubTransactionIdmySubid,
311310
SubTransactionIdparentSubid);
@@ -1928,6 +1927,7 @@ StartTransaction(void)
19281927
*/
19291928
s->state=TRANS_INPROGRESS;
19301929

1930+
CallXactCallbacks(XACT_EVENT_START);
19311931
ShowTransactionState("StartTransaction");
19321932
}
19331933

@@ -3339,7 +3339,7 @@ UnregisterXactCallback(XactCallback callback, void *arg)
33393339
}
33403340
}
33413341

3342-
staticvoid
3342+
void
33433343
CallXactCallbacks(XactEventevent)
33443344
{
33453345
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);
@@ -403,5 +406,6 @@ extern void ParseAbortRecord(uint8 info, xl_xact_abort *xlrec, xl_xact_parsed_ab
403406
externvoidEnterParallelMode(void);
404407
externvoidExitParallelMode(void);
405408
externboolIsInParallelMode(void);
409+
externvoidCallXactCallbacks(XactEventevent);
406410

407411
#endif/* XACT_H */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp