diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/commands/explain.h | 38 | ||||
-rw-r--r-- | src/include/commands/prepare.h | 9 | ||||
-rw-r--r-- | src/include/nodes/parsenodes.h | 5 |
3 files changed, 29 insertions, 23 deletions
diff --git a/src/include/commands/explain.h b/src/include/commands/explain.h index e5c61a0dcb..a5cc40367f 100644 --- a/src/include/commands/explain.h +++ b/src/include/commands/explain.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994-5, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/commands/explain.h,v 1.39 2009/06/11 14:49:11 momjian Exp $ + * $PostgreSQL: pgsql/src/include/commands/explain.h,v 1.40 2009/07/26 23:34:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -15,12 +15,23 @@ #include "executor/executor.h" +typedef struct ExplainState +{ + StringInfo str; /* output buffer */ + /* options */ + bool verbose; /* print plan targetlists */ + bool analyze; /* print actual times */ + bool costs; /* print costs */ + /* other states */ + PlannedStmt *pstmt; /* top of plan */ + List *rtable; /* range table */ +} ExplainState; + /* Hook for plugins to get control in ExplainOneQuery() */ typedef void (*ExplainOneQuery_hook_type) (Query *query, - ExplainStmt *stmt, - const char *queryString, - ParamListInfo params, - TupOutputState *tstate); + ExplainState *es, + const char *queryString, + ParamListInfo params); extern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook; /* Hook for plugins to get control in explain_get_index_name() */ @@ -31,19 +42,16 @@ extern PGDLLIMPORT explain_get_index_name_hook_type explain_get_index_name_hook; extern void ExplainQuery(ExplainStmt *stmt, const char *queryString, ParamListInfo params, DestReceiver *dest); +extern void ExplainInitState(ExplainState *es); + extern TupleDesc ExplainResultDesc(ExplainStmt *stmt); -extern void ExplainOneUtility(Node *utilityStmt, ExplainStmt *stmt, - const char *queryString, - ParamListInfo params, - TupOutputState *tstate); +extern void ExplainOneUtility(Node *utilityStmt, ExplainState *es, + const char *queryString, ParamListInfo params); -extern void ExplainOnePlan(PlannedStmt *plannedstmt, ExplainStmt *stmt, - const char *queryString, - ParamListInfo params, - TupOutputState *tstate); +extern void ExplainOnePlan(PlannedStmt *plannedstmt, ExplainState *es, + const char *queryString, ParamListInfo params); -extern void ExplainPrintPlan(StringInfo str, QueryDesc *queryDesc, - bool analyze, bool verbose); +extern void ExplainPrintPlan(ExplainState *es, QueryDesc *queryDesc); #endif /* EXPLAIN_H */ diff --git a/src/include/commands/prepare.h b/src/include/commands/prepare.h index f52f001289..4f9cb26227 100644 --- a/src/include/commands/prepare.h +++ b/src/include/commands/prepare.h @@ -6,14 +6,14 @@ * * Copyright (c) 2002-2009, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.30 2009/01/01 17:23:58 momjian Exp $ + * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.31 2009/07/26 23:34:18 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef PREPARE_H #define PREPARE_H -#include "executor/executor.h" +#include "commands/explain.h" #include "utils/plancache.h" #include "utils/timestamp.h" @@ -40,9 +40,8 @@ extern void ExecuteQuery(ExecuteStmt *stmt, const char *queryString, ParamListInfo params, DestReceiver *dest, char *completionTag); extern void DeallocateQuery(DeallocateStmt *stmt); -extern void ExplainExecuteQuery(ExecuteStmt *execstmt, ExplainStmt *stmt, - const char *queryString, - ParamListInfo params, TupOutputState *tstate); +extern void ExplainExecuteQuery(ExecuteStmt *execstmt, ExplainState *es, + const char *queryString, ParamListInfo params); /* Low-level access to stored prepared statements */ extern void StorePreparedStatement(const char *stmt_name, diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index b54b170425..5947c6acc9 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -13,7 +13,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.397 2009/07/20 02:42:28 adunstan Exp $ + * $PostgreSQL: pgsql/src/include/nodes/parsenodes.h,v 1.398 2009/07/26 23:34:18 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2193,8 +2193,7 @@ typedef struct ExplainStmt { NodeTag type; Node *query; /* the query (as a raw parse tree) */ - bool verbose; /* print plan info */ - bool analyze; /* get statistics by executing plan */ + List *options; /* list of DefElem nodes */ } ExplainStmt; /* ---------------------- |