diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2009-01-02 20:42:00 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2009-01-02 20:42:00 +0000 |
commit | bbeb0bbf6b3e5fdb7cff1a87885f43139ace5c4b (patch) | |
tree | 61f8c7f089cc1e35f20b76831bd388848c212799 /src/backend/commands/explain.c | |
parent | ccd31eb861e727671e4a771d4bcc37f1179caec9 (diff) | |
download | postgresql-bbeb0bbf6b3e5fdb7cff1a87885f43139ace5c4b.tar.gz postgresql-bbeb0bbf6b3e5fdb7cff1a87885f43139ace5c4b.zip |
Include a pointer to the query's source text in QueryDesc structs. This is
practically free given prior 8.4 changes in plancache and portal management,
and it makes it a lot easier for ExecutorStart/Run/End hooks to get at the
query text. Extracted from Itagaki Takahiro's pg_stat_statements patch,
with minor editorialization.
Diffstat (limited to 'src/backend/commands/explain.c')
-rw-r--r-- | src/backend/commands/explain.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 4f520ccb5c8..8ad877e1652 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994-5, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.183 2009/01/01 17:23:37 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/explain.c,v 1.184 2009/01/02 20:42:00 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -172,7 +172,7 @@ ExplainOneQuery(Query *query, ExplainStmt *stmt, const char *queryString, plan = pg_plan_query(query, 0, params); /* run it (if needed) and produce output */ - ExplainOnePlan(plan, params, stmt, tstate); + ExplainOnePlan(plan, stmt, queryString, params, tstate); } } @@ -218,8 +218,9 @@ ExplainOneUtility(Node *utilityStmt, ExplainStmt *stmt, * to call it. */ void -ExplainOnePlan(PlannedStmt *plannedstmt, ParamListInfo params, - ExplainStmt *stmt, TupOutputState *tstate) +ExplainOnePlan(PlannedStmt *plannedstmt, ExplainStmt *stmt, + const char *queryString, ParamListInfo params, + TupOutputState *tstate) { QueryDesc *queryDesc; instr_time starttime; @@ -234,7 +235,7 @@ ExplainOnePlan(PlannedStmt *plannedstmt, ParamListInfo params, PushUpdatedSnapshot(GetActiveSnapshot()); /* Create a QueryDesc requesting no output */ - queryDesc = CreateQueryDesc(plannedstmt, + queryDesc = CreateQueryDesc(plannedstmt, queryString, GetActiveSnapshot(), InvalidSnapshot, None_Receiver, params, stmt->analyze); |