Skip to content

Commit 3aa2630

Browse files
knizhnikkelvich
authored andcommitted
Fixes #2: add GetTransactionStateSize, SerializeTransactionState and DeserializeTransactionState to XTM API
1 parent e3ef99c commit 3aa2630

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

Diff for: multimaster.c

+28-1
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ static TransactionId MtmAdjustOldestXid(TransactionId xid);
130130
static bool MtmDetectGlobalDeadLock(PGPROC* proc);
131131
static void MtmAddSubtransactions(MtmTransState* ts, TransactionId* subxids, int nSubxids);
132132
static char const* MtmGetName(void);
133+
static size_t MtmGetTransactionStateSize(void);
134+
static void MtmSerializeTransactionState(void* ctx);
135+
static void MtmDeserializeTransactionState(void* ctx);
136+
133137
static void MtmCheckClusterLock(void);
134138
static void MtmCheckSlots(void);
135139
static void MtmAddSubtransactions(MtmTransState* ts, TransactionId *subxids, int nSubxids);
@@ -163,7 +167,10 @@ static TransactionManager MtmTM = {
163167
PgGetGlobalTransactionId,
164168
MtmXidInMVCCSnapshot,
165169
MtmDetectGlobalDeadLock,
166-
MtmGetName
170+
MtmGetName,
171+
MtmGetTransactionStateSize,
172+
MtmSerializeTransactionState,
173+
MtmDeserializeTransactionState
167174
};
168175

169176
char const* const MtmNodeStatusMnem[] =
@@ -322,6 +329,26 @@ static char const* MtmGetName(void)
322329
return MULTIMASTER_NAME;
323330
}
324331

332+
static size_t
333+
MtmGetTransactionStateSize(void)
334+
{
335+
return sizeof(MtmTx);
336+
}
337+
338+
static void
339+
MtmSerializeTransactionState(void* ctx)
340+
{
341+
memcpy(ctx, &MtmTx, sizeof(MtmTx));
342+
}
343+
344+
static void
345+
MtmDeserializeTransactionState(void* ctx)
346+
{
347+
memcpy(&MtmTx, ctx, sizeof(MtmTx));
348+
}
349+
350+
351+
325352
/*
326353
* -------------------------------------------
327354
* Visibility&snapshots

0 commit comments

Comments
 (0)