1/*-------------------------------------------------------------------------
4 * prototypes for explain_state.c
6 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994-5, Regents of the University of California
9 * src/include/commands/explain_state.h
11 *-------------------------------------------------------------------------
13#ifndef EXPLAIN_STATE_H
14#define EXPLAIN_STATE_H
50 bool costs;
/* print estimated costs */
52 bool wal;
/* print WAL usage */
53 bool timing;
/* print detailed node timing */
54 bool summary;
/* print total planning and execution timing */
55 bool memory;
/* print planner's memory usage information */
57 bool generic;
/* generate a generic plan */
60 /* state for output formatting --- not reset for each new plan tree */
61 int indent;
/* current indentation level */
63 /* state related to the current plan tree (filled by ExplainPrintPlan) */
72 /* state related to the current plan node */
81/* Hook to perform additional EXPLAIN options validation */
100#endif /* EXPLAIN_STATE_H */
@ EXPLAIN_SERIALIZE_BINARY
ExplainState * NewExplainState(void)
void(* ExplainOptionHandler)(ExplainState *, DefElem *, ParseState *)
int GetExplainExtensionId(const char *extension_name)
void * GetExplainExtensionState(ExplainState *es, int extension_id)
void SetExplainExtensionState(ExplainState *es, int extension_id, void *opaque)
void RegisterExtensionExplainOption(const char *option_name, ExplainOptionHandler handler)
struct ExplainWorkersState ExplainWorkersState
void(* explain_validate_options_hook_type)(ExplainState *es, List *options, ParseState *pstate)
PGDLLIMPORT explain_validate_options_hook_type explain_validate_options_hook
struct ExplainState ExplainState
void ParseExplainOptionList(ExplainState *es, List *options, ParseState *pstate)
bool ApplyExtensionExplainOption(ExplainState *es, DefElem *opt, ParseState *pstate)
int extension_state_allocated
Bitmapset * printed_subplans
ExplainWorkersState * workers_state
ExplainSerializeOption serialize