56 #define COMMAND_OK_IN_READ_ONLY_TXN 0x0001
57 #define COMMAND_OK_IN_PARALLEL_MODE 0x0002
58 #define COMMAND_OK_IN_RECOVERY 0x0004
65 #define COMMAND_IS_STRICTLY_READ_ONLY \
66 (COMMAND_OK_IN_READ_ONLY_TXN | COMMAND_OK_IN_RECOVERY | \
67 COMMAND_OK_IN_PARALLEL_MODE)
68 #define COMMAND_IS_NOT_READ_ONLY 0
72 const char *queryString,
102 static inline const char *
const char * GetCommandTagName(CommandTag commandTag)
QueryEnvironment * queryEnv
void standard_ProcessUtility(PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc)
void ProcessUtility(PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc)
bool UtilityReturnsTuples(Node *parsetree)
bool CommandIsReadOnly(PlannedStmt *pstmt)
static const char * CreateCommandName(Node *parsetree)
CommandTag CreateCommandTag(Node *parsetree)
void ProcessUtilityForAlterTable(Node *stmt, AlterTableUtilityContext *context)
void(* ProcessUtility_hook_type)(PlannedStmt *pstmt, const char *queryString, bool readOnlyTree, ProcessUtilityContext context, ParamListInfo params, QueryEnvironment *queryEnv, DestReceiver *dest, QueryCompletion *qc)
Query * UtilityContainsQuery(Node *parsetree)
PGDLLIMPORT ProcessUtility_hook_type ProcessUtility_hook
TupleDesc UtilityTupleDescriptor(Node *parsetree)
LogStmtLevel GetCommandLogLevel(Node *parsetree)
@ PROCESS_UTILITY_SUBCOMMAND
@ PROCESS_UTILITY_TOPLEVEL
@ PROCESS_UTILITY_QUERY_NONATOMIC
struct AlterTableUtilityContext AlterTableUtilityContext