{
Node *parsetree = pstmt->utilityStmt;
bool isTopLevel = (context == PROCESS_UTILITY_TOPLEVEL);
+ bool isAtomicContext = (context != PROCESS_UTILITY_TOPLEVEL || IsTransactionBlock());
ParseState *pstate;
check_xact_readonly(parsetree);
break;
case T_DoStmt:
- ExecuteDoStmt((DoStmt *) parsetree,
- (context != PROCESS_UTILITY_TOPLEVEL || IsTransactionBlock()));
+ ExecuteDoStmt((DoStmt *) parsetree, isAtomicContext);
break;
case T_CreateTableSpaceStmt:
break;
case T_CallStmt:
- ExecuteCallStmt(castNode(CallStmt, parsetree), params,
- (context != PROCESS_UTILITY_TOPLEVEL || IsTransactionBlock()),
- dest);
+ ExecuteCallStmt(castNode(CallStmt, parsetree), params, isAtomicContext, dest);
break;
case T_ClusterStmt: