@@ -130,6 +130,10 @@ static TransactionId MtmAdjustOldestXid(TransactionId xid);
130
130
static bool MtmDetectGlobalDeadLock (PGPROC * proc );
131
131
static void MtmAddSubtransactions (MtmTransState * ts , TransactionId * subxids , int nSubxids );
132
132
static char const * MtmGetName (void );
133
+ static size_t MtmGetTransactionStateSize (void );
134
+ static void MtmSerializeTransactionState (void * ctx );
135
+ static void MtmDeserializeTransactionState (void * ctx );
136
+
133
137
static void MtmCheckClusterLock (void );
134
138
static void MtmCheckSlots (void );
135
139
static void MtmAddSubtransactions (MtmTransState * ts , TransactionId * subxids , int nSubxids );
@@ -163,7 +167,10 @@ static TransactionManager MtmTM = {
163
167
PgGetGlobalTransactionId ,
164
168
MtmXidInMVCCSnapshot ,
165
169
MtmDetectGlobalDeadLock ,
166
- MtmGetName
170
+ MtmGetName ,
171
+ MtmGetTransactionStateSize ,
172
+ MtmSerializeTransactionState ,
173
+ MtmDeserializeTransactionState
167
174
};
168
175
169
176
char const * const MtmNodeStatusMnem [] =
@@ -322,6 +329,26 @@ static char const* MtmGetName(void)
322
329
return MULTIMASTER_NAME ;
323
330
}
324
331
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
+
325
352
/*
326
353
* -------------------------------------------
327
354
* Visibility&snapshots
0 commit comments