PostgreSQL Source Code git master
Loading...
Searching...
No Matches
explain.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * explain.h
4 * prototypes for explain.c
5 *
6 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994-5, Regents of the University of California
8 *
9 * src/include/commands/explain.h
10 *
11 *-------------------------------------------------------------------------
12 */
13#ifndef EXPLAIN_H
14#define EXPLAIN_H
15
16#include "executor/executor.h"
17#include "executor/instrument.h"
18#include "parser/parse_node.h"
19
20typedef struct ExplainState ExplainState; /* defined in explain_state.h */
21
22/* Hook for plugins to get control in ExplainOneQuery() */
24 int cursorOptions,
25 IntoClause *into,
26 ExplainState *es,
27 const char *queryString,
28 ParamListInfo params,
29 QueryEnvironment *queryEnv);
31
32/* Hook for EXPLAIN plugins to print extra information for each plan */
34 IntoClause *into,
35 ExplainState *es,
36 const char *queryString,
37 ParamListInfo params,
38 QueryEnvironment *queryEnv);
40
41/* Hook for EXPLAIN plugins to print extra fields on individual plan nodes */
43 List *ancestors,
44 const char *relationship,
45 const char *plan_name,
46 ExplainState *es);
48
49/* Hook for plugins to get control in explain_get_index_name() */
50typedef const char *(*explain_get_index_name_hook_type) (Oid indexId);
52
53
54extern void ExplainQuery(ParseState *pstate, ExplainStmt *stmt,
55 ParamListInfo params, DestReceiver *dest);
56extern void standard_ExplainOneQuery(Query *query, int cursorOptions,
57 IntoClause *into, ExplainState *es,
58 const char *queryString, ParamListInfo params,
59 QueryEnvironment *queryEnv);
60
62
63extern void ExplainOneUtility(Node *utilityStmt, IntoClause *into,
64 ExplainState *es, ParseState *pstate,
65 ParamListInfo params);
66
67extern void ExplainOnePlan(PlannedStmt *plannedstmt, IntoClause *into,
68 ExplainState *es, const char *queryString,
69 ParamListInfo params, QueryEnvironment *queryEnv,
71 const BufferUsage *bufusage,
73
74extern void ExplainPrintPlan(ExplainState *es, QueryDesc *queryDesc);
76 QueryDesc *queryDesc);
77
79 QueryDesc *queryDesc);
80
81extern void ExplainQueryText(ExplainState *es, QueryDesc *queryDesc);
83 ParamListInfo params, int maxlen);
84
85#endif /* EXPLAIN_H */
#define PGDLLIMPORT
Definition c.h:1423
void ExplainOnePlan(PlannedStmt *plannedstmt, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv, const instr_time *planduration, const BufferUsage *bufusage, const MemoryContextCounters *mem_counters)
Definition explain.c:497
const char *(* explain_get_index_name_hook_type)(Oid indexId)
Definition explain.h:50
PGDLLIMPORT explain_get_index_name_hook_type explain_get_index_name_hook
Definition explain.c:54
PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook
Definition explain.c:51
void(* explain_per_plan_hook_type)(PlannedStmt *plannedstmt, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv)
Definition explain.h:33
void ExplainQuery(ParseState *pstate, ExplainStmt *stmt, ParamListInfo params, DestReceiver *dest)
Definition explain.c:178
void(* explain_per_node_hook_type)(PlanState *planstate, List *ancestors, const char *relationship, const char *plan_name, ExplainState *es)
Definition explain.h:42
PGDLLIMPORT explain_per_plan_hook_type explain_per_plan_hook
Definition explain.c:57
void(* ExplainOneQuery_hook_type)(Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv)
Definition explain.h:23
TupleDesc ExplainResultDesc(ExplainStmt *stmt)
Definition explain.c:256
void ExplainPrintJITSummary(ExplainState *es, QueryDesc *queryDesc)
Definition explain.c:878
void ExplainQueryText(ExplainState *es, QueryDesc *queryDesc)
Definition explain.c:1062
PGDLLIMPORT explain_per_node_hook_type explain_per_node_hook
Definition explain.c:58
void ExplainPrintPlan(ExplainState *es, QueryDesc *queryDesc)
Definition explain.c:762
void ExplainQueryParameters(ExplainState *es, ParamListInfo params, int maxlen)
Definition explain.c:1077
void ExplainOneUtility(Node *utilityStmt, IntoClause *into, ExplainState *es, ParseState *pstate, ParamListInfo params)
Definition explain.c:393
void ExplainPrintTriggers(ExplainState *es, QueryDesc *queryDesc)
Definition explain.c:835
void standard_ExplainOneQuery(Query *query, int cursorOptions, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv)
Definition explain.c:321
#define stmt
unsigned int Oid
static int fb(int x)
Definition pg_list.h:54
Definition nodes.h:135