@@ -382,6 +382,7 @@ standard_ProcessUtility(PlannedStmt *pstmt,
382
382
{
383
383
Node * parsetree = pstmt -> utilityStmt ;
384
384
bool isTopLevel = (context == PROCESS_UTILITY_TOPLEVEL );
385
+ bool isAtomicContext = (context != PROCESS_UTILITY_TOPLEVEL || IsTransactionBlock ());
385
386
ParseState * pstate ;
386
387
387
388
check_xact_readonly (parsetree );
@@ -514,8 +515,7 @@ standard_ProcessUtility(PlannedStmt *pstmt,
514
515
break ;
515
516
516
517
case T_DoStmt :
517
- ExecuteDoStmt ((DoStmt * )parsetree ,
518
- (context != PROCESS_UTILITY_TOPLEVEL || IsTransactionBlock ()));
518
+ ExecuteDoStmt ((DoStmt * )parsetree ,isAtomicContext );
519
519
break ;
520
520
521
521
case T_CreateTableSpaceStmt :
@@ -644,9 +644,7 @@ standard_ProcessUtility(PlannedStmt *pstmt,
644
644
break ;
645
645
646
646
case T_CallStmt :
647
- ExecuteCallStmt (castNode (CallStmt ,parsetree ),params ,
648
- (context != PROCESS_UTILITY_TOPLEVEL || IsTransactionBlock ()),
649
- dest );
647
+ ExecuteCallStmt (castNode (CallStmt ,parsetree ),params ,isAtomicContext ,dest );
650
648
break ;
651
649
652
650
case T_ClusterStmt :