diff options
Diffstat (limited to 'src/include/tcop/utility.h')
-rw-r--r-- | src/include/tcop/utility.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/include/tcop/utility.h b/src/include/tcop/utility.h index 54190b2f6ce..fb6b568809b 100644 --- a/src/include/tcop/utility.h +++ b/src/include/tcop/utility.h @@ -16,19 +16,27 @@ #include "tcop/tcopprot.h" +typedef enum +{ + PROCESS_UTILITY_TOPLEVEL, /* toplevel interactive command */ + PROCESS_UTILITY_QUERY, /* a complete query, but not toplevel */ + PROCESS_UTILITY_SUBCOMMAND, /* a piece of a query */ + PROCESS_UTILITY_GENERATED /* internally generated node query node */ +} ProcessUtilityContext; /* Hook for plugins to get control in ProcessUtility() */ typedef void (*ProcessUtility_hook_type) (Node *parsetree, - const char *queryString, ParamListInfo params, bool isTopLevel, - DestReceiver *dest, char *completionTag); + const char *queryString, ParamListInfo params, + DestReceiver *dest, char *completionTag, + ProcessUtilityContext context); extern PGDLLIMPORT ProcessUtility_hook_type ProcessUtility_hook; extern void ProcessUtility(Node *parsetree, const char *queryString, - ParamListInfo params, bool isTopLevel, - DestReceiver *dest, char *completionTag); + ParamListInfo params, DestReceiver *dest, char *completionTag, + ProcessUtilityContext context); extern void standard_ProcessUtility(Node *parsetree, const char *queryString, - ParamListInfo params, bool isTopLevel, - DestReceiver *dest, char *completionTag); + ParamListInfo params, DestReceiver *dest, + char *completionTag, ProcessUtilityContext context); extern bool UtilityReturnsTuples(Node *parsetree); |