@@ -130,6 +130,10 @@ static TransactionId MtmAdjustOldestXid(TransactionId xid);
130130static bool MtmDetectGlobalDeadLock (PGPROC * proc );
131131static void MtmAddSubtransactions (MtmTransState * ts , TransactionId * subxids , int nSubxids );
132132static char const * MtmGetName (void );
133+ static size_t MtmGetTransactionStateSize (void );
134+ static void MtmSerializeTransactionState (void * ctx );
135+ static void MtmDeserializeTransactionState (void * ctx );
136+
133137static void MtmCheckClusterLock (void );
134138static void MtmCheckSlots (void );
135139static 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
169176char 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