diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/commands/explain.h | 9 | ||||
-rw-r--r-- | src/include/utils/builtins.h | 5 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/include/commands/explain.h b/src/include/commands/explain.h index ca213d7f704..664499c2d35 100644 --- a/src/include/commands/explain.h +++ b/src/include/commands/explain.h @@ -24,6 +24,13 @@ typedef enum ExplainFormat EXPLAIN_FORMAT_YAML } ExplainFormat; +/* Crude hack to avoid changing sizeof(ExplainState) in released branches */ +typedef struct ExplainStateExtra +{ + List *groupingstack; /* format-specific grouping state */ + List *deparsecxt; /* context list for deparsing expressions */ +} ExplainStateExtra; + typedef struct ExplainState { StringInfo str; /* output buffer */ @@ -39,7 +46,7 @@ typedef struct ExplainState List *rtable; /* range table */ List *rtable_names; /* alias names for RTEs */ int indent; /* current indentation level */ - List *grouping_stack; /* format-specific grouping state */ + ExplainStateExtra *extra; /* pointer to additional data */ } ExplainState; /* Hook for plugins to get control in ExplainOneQuery() */ diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index c5071c87b73..929a728106d 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -660,8 +660,9 @@ extern Datum pg_get_function_result(PG_FUNCTION_ARGS); extern char *deparse_expression(Node *expr, List *dpcontext, bool forceprefix, bool showimplicit); extern List *deparse_context_for(const char *aliasname, Oid relid); -extern List *deparse_context_for_planstate(Node *planstate, List *ancestors, - List *rtable, List *rtable_names); +extern List *deparse_context_for_plan_rtable(List *rtable, List *rtable_names); +extern List *set_deparse_context_planstate(List *dpcontext, + Node *planstate, List *ancestors); extern List *select_rtable_names_for_explain(List *rtable, Bitmapset *rels_used); extern const char *quote_identifier(const char *ident); |