1 /*-------------------------------------------------------------------------
4 * prototypes for explain.c
6 * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994-5, Regents of the University of California
11 *-------------------------------------------------------------------------
16 #include "executor/executor.h"
18 /* Hook for plugins to get control in ExplainOneQuery() */
19 typedef void (*ExplainOneQuery_hook_type
) (Query
*query
,
21 const char *queryString
,
23 TupOutputState
*tstate
);
24 extern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook
;
26 /* Hook for plugins to get control in explain_get_index_name() */
27 typedef const char *(*explain_get_index_name_hook_type
) (Oid indexId
);
28 extern PGDLLIMPORT explain_get_index_name_hook_type explain_get_index_name_hook
;
31 extern void ExplainQuery(ExplainStmt
*stmt
, const char *queryString
,
32 ParamListInfo params
, DestReceiver
*dest
);
34 extern TupleDesc
ExplainResultDesc(ExplainStmt
*stmt
);
36 extern void ExplainOneUtility(Node
*utilityStmt
, ExplainStmt
*stmt
,
37 const char *queryString
,
39 TupOutputState
*tstate
);
41 extern void ExplainOnePlan(PlannedStmt
*plannedstmt
, ExplainStmt
*stmt
,
42 const char *queryString
,
44 TupOutputState
*tstate
);
46 extern void ExplainPrintPlan(StringInfo str
, QueryDesc
*queryDesc
,
47 bool analyze
, bool verbose
);
49 #endif /* EXPLAIN_H */