@@ -146,9 +146,12 @@ static bool MtmDetectGlobalDeadLock(PGPROC* proc);
146
146
static void MtmAddSubtransactions (MtmTransState * ts , TransactionId * subxids , int nSubxids );
147
147
static char const * MtmGetName (void );
148
148
static size_t MtmGetTransactionStateSize (void );
149
- static void MtmSerializeTransactionState (void * ctx );
150
- static void MtmDeserializeTransactionState (void * ctx );
151
- static void MtmInitializeSequence (int64 * start , int64 * step );
149
+ static void MtmSerializeTransactionState (void * ctx );
150
+ static void MtmDeserializeTransactionState (void * ctx );
151
+ static void MtmInitializeSequence (int64 * start , int64 * step );
152
+ static void * MtmCreateSavepointContext (void );
153
+ static void MtmRestoreSavepointContext (void * ctx );
154
+ static void MtmReleaseSavepointContext (void * ctx );
152
155
153
156
static void MtmCheckClusterLock (void );
154
157
static void MtmCheckSlots (void );
@@ -197,7 +200,10 @@ static TransactionManager MtmTM =
197
200
MtmGetTransactionStateSize ,
198
201
MtmSerializeTransactionState ,
199
202
MtmDeserializeTransactionState ,
200
- MtmInitializeSequence
203
+ MtmInitializeSequence ,
204
+ MtmCreateSavepointContext ,
205
+ MtmRestoreSavepointContext ,
206
+ MtmReleaseSavepointContext
201
207
};
202
208
203
209
char const * const MtmNodeStatusMnem [] =
@@ -467,6 +473,20 @@ MtmInitializeSequence(int64* start, int64* step)
467
473
}
468
474
}
469
475
476
+ static void * MtmCreateSavepointContext (void )
477
+ {
478
+ return (void * )(size_t )MtmTx .containsDML ;
479
+ }
480
+
481
+ static void MtmRestoreSavepointContext (void * ctx )
482
+ {
483
+ MtmTx .containsDML = ctx != NULL ;
484
+ }
485
+
486
+ static void MtmReleaseSavepointContext (void * ctx )
487
+ {
488
+ }
489
+
470
490
471
491
/*
472
492
* -------------------------------------------
0 commit comments