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]

Reply via email to