This is an automated email from the ASF dual-hosted git repository. maxyang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit 3d37b9258886a77d9ebe23f88772783c179aa8e1 Author: Soumyadeep Chakraborty <[email protected]> AuthorDate: Wed Mar 9 16:48:10 2022 -0800 Refactor setDistributedTransactionContext This commit ensures that we use setDistributedTransactionContext() in sinval.c, the only place where we weren't. Also, this commit ensures that we log the act of setting the context, while respecting the debug_print_full_dtm GUC. --- src/backend/cdb/cdbtm.c | 15 ++++----------- src/backend/storage/ipc/sinval.c | 4 ++-- src/include/cdb/cdbtm.h | 2 ++ 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/backend/cdb/cdbtm.c b/src/backend/cdb/cdbtm.c index b4317bf6c2..6de5509315 100644 --- a/src/backend/cdb/cdbtm.c +++ b/src/backend/cdb/cdbtm.c @@ -137,19 +137,12 @@ static void sendWaitGxidsToQD(List *waitGxids); extern void GpDropTempTables(void); -/** - * All assignments of the global DistributedTransactionContext should go through this function - * (so we can add logging here to see all assignments) - * - * @param context the new value for DistributedTransactionContext - */ -static void +void setDistributedTransactionContext(DtxContext context) { - /* - * elog(INFO, "Setting DistributedTransactionContext to '%s'", - * DtxContextToString(context)); - */ + elog((Debug_print_full_dtm ? LOG : DEBUG5), + "Setting DistributedTransactionContext to '%s'", + DtxContextToString(context)); DistributedTransactionContext = context; } diff --git a/src/backend/storage/ipc/sinval.c b/src/backend/storage/ipc/sinval.c index a5fe5ba7e4..d18973f358 100644 --- a/src/backend/storage/ipc/sinval.c +++ b/src/backend/storage/ipc/sinval.c @@ -223,12 +223,12 @@ ProcessCatchupInterrupt(void) */ DtxContext saveDistributedTransactionContext; saveDistributedTransactionContext = DistributedTransactionContext; - DistributedTransactionContext = DTX_CONTEXT_LOCAL_ONLY; + setDistributedTransactionContext(DTX_CONTEXT_LOCAL_ONLY); StartTransactionCommand(); CommitTransactionCommand(); - DistributedTransactionContext = saveDistributedTransactionContext; + setDistributedTransactionContext(saveDistributedTransactionContext); } in_process_catchup_event = 0; diff --git a/src/include/cdb/cdbtm.h b/src/include/cdb/cdbtm.h index 7bcb8196a7..5a8b3b5d73 100644 --- a/src/include/cdb/cdbtm.h +++ b/src/include/cdb/cdbtm.h @@ -305,6 +305,8 @@ extern void dtxFormGid(char *gid, DistributedTransactionId gxid); extern DistributedTransactionId getDistributedTransactionId(void); extern bool getDistributedTransactionIdentifier(char *id); +extern void setDistributedTransactionContext(DtxContext context); + extern void resetTmGxact(void); extern void prepareDtxTransaction(void); extern bool isPreparedDtxTransaction(void); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
