@@ -289,9 +289,11 @@ static shmem_startup_hook_type PreviousShmemStartupHook;
289
289
290
290
static void MtmExecutorStart (QueryDesc * queryDesc , int eflags );
291
291
static void MtmExecutorFinish (QueryDesc * queryDesc );
292
- static void MtmProcessUtility (Node * parsetree , const char * queryString ,
293
- ProcessUtilityContext context , ParamListInfo params ,
294
- DestReceiver * dest , char * completionTag );
292
+ static void MtmProcessUtility (PlannedStmt * pstmt ,
293
+ const char * queryString , ProcessUtilityContext context ,
294
+ ParamListInfo params ,
295
+ QueryEnvironment * queryEnv ,
296
+ DestReceiver * dest , char * completionTag );
295
297
static void MtmSeqNextvalHook (Oid seqid , int64 next );
296
298
297
299
static bool MtmAtExitHookRegistered = false;
@@ -5036,13 +5038,16 @@ static bool MtmFunctionProfileDependsOnTempTable(CreateFunctionStmt* func)
5036
5038
5037
5039
5038
5040
5039
- static void MtmProcessUtility (Node * parsetree , const char * queryString ,
5040
- ProcessUtilityContext context , ParamListInfo params ,
5041
- DestReceiver * dest , char * completionTag )
5041
+ static void MtmProcessUtility (PlannedStmt * pstmt ,
5042
+ const char * queryString , ProcessUtilityContext context ,
5043
+ ParamListInfo params ,
5044
+ QueryEnvironment * queryEnv ,
5045
+ DestReceiver * dest , char * completionTag )
5042
5046
{
5043
5047
bool skipCommand = false;
5044
5048
bool executed = false;
5045
5049
bool prevMyXactAccessedTempRel ;
5050
+ Node * parsetree = pstmt -> utilityStmt ;
5046
5051
5047
5052
MTM_LOG2 ("%d: Process utility statement tag=%d, context=%d, issubtrans=%d, creating_extension=%d, query=%s" ,
5048
5053
MyProcPid , nodeTag (parsetree ), context , IsSubTransaction (), creating_extension , queryString );
@@ -5347,14 +5352,17 @@ static void MtmProcessUtility(Node *parsetree, const char *queryString,
5347
5352
5348
5353
if (PreviousProcessUtilityHook != NULL )
5349
5354
{
5350
- PreviousProcessUtilityHook (parsetree , queryString , context ,
5351
- params , dest , completionTag );
5355
+ PreviousProcessUtilityHook (pstmt , queryString ,
5356
+ context , params , queryEnv ,
5357
+ dest , completionTag );
5352
5358
}
5353
5359
else
5354
5360
{
5355
- standard_ProcessUtility (parsetree , queryString , context ,
5356
- params , dest , completionTag );
5361
+ standard_ProcessUtility (pstmt , queryString ,
5362
+ context , params , queryEnv ,
5363
+ dest , completionTag );
5357
5364
}
5365
+
5358
5366
#if 0
5359
5367
if (!MtmVolksWagenMode && MtmTx .isDistributed && XactIsoLevel != XACT_REPEATABLE_READ ) {
5360
5368
MTM_ELOG (ERROR , "Isolation level %s is not supported by multimaster" , isoLevelStr [XactIsoLevel ]);
0 commit comments