Hi,

I found a variable (queryEnv) which should be added in
ExplainOneQuery_hook because if it is missing, hook function
can't call ExplainOnePlan.
Sorry if this wasn't correct.

Please find attached a patch.

Tatsuro Yamada
NTT Open Source Software Center
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index 79e6985..41cd47e 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -351,7 +351,7 @@ ExplainOneQuery(Query *query, int cursorOptions,
 	/* if an advisor plugin is present, let it manage things */
 	if (ExplainOneQuery_hook)
 		(*ExplainOneQuery_hook) (query, cursorOptions, into, es,
-								 queryString, params);
+								 queryString, params, queryEnv);
 	else
 	{
 		PlannedStmt *plan;
diff --git a/src/include/commands/explain.h b/src/include/commands/explain.h
index dd8abae..0c3986a 100644
--- a/src/include/commands/explain.h
+++ b/src/include/commands/explain.h
@@ -53,7 +53,8 @@ typedef void (*ExplainOneQuery_hook_type) (Query *query,
 										   IntoClause *into,
 										   ExplainState *es,
 										   const char *queryString,
-										   ParamListInfo params);
+										   ParamListInfo params,
+										   QueryEnvironment *queryEnv);
 extern PGDLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;
 
 /* Hook for plugins to get control in explain_get_index_name() */

Reply via email to