Skip to content

Commit 4e99791

Browse files
knizhnikkelvich
authored andcommitted
Add create/restore/release savepoint context methods to XTM
1 parent f255ef7 commit 4e99791

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

multimaster.c

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,12 @@ static bool MtmDetectGlobalDeadLock(PGPROC* proc);
146146
static void MtmAddSubtransactions(MtmTransState* ts, TransactionId* subxids, int nSubxids);
147147
static char const* MtmGetName(void);
148148
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);
152155

153156
static void MtmCheckClusterLock(void);
154157
static void MtmCheckSlots(void);
@@ -197,7 +200,10 @@ static TransactionManager MtmTM =
197200
MtmGetTransactionStateSize,
198201
MtmSerializeTransactionState,
199202
MtmDeserializeTransactionState,
200-
MtmInitializeSequence
203+
MtmInitializeSequence,
204+
MtmCreateSavepointContext,
205+
MtmRestoreSavepointContext,
206+
MtmReleaseSavepointContext
201207
};
202208

203209
char const* const MtmNodeStatusMnem[] =
@@ -467,6 +473,20 @@ MtmInitializeSequence(int64* start, int64* step)
467473
}
468474
}
469475

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+
470490

471491
/*
472492
* -------------------------------------------

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy