]> granicus.if.org Git - postgresql/blobdiff - src/include/commands/explain.h
Create hooks to let a loadable plugin monitor (or even replace) the planner
[postgresql] / src / include / commands / explain.h
index 42879ce5a40713d296729f2f30184942a5c4c621..73bf41e49c19c46ea5b47e07dab6eab18f8933bb 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994-5, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/commands/explain.h,v 1.30 2007/03/13 00:33:43 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/commands/explain.h,v 1.31 2007/05/25 17:54:25 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "executor/executor.h"
 
+/* Hook for plugins to get control in ExplainOneQuery() */
+typedef void (*ExplainOneQuery_hook_type) (Query *query,
+                                                                                  ExplainStmt *stmt,
+                                                                                  const char *queryString,
+                                                                                  ParamListInfo params,
+                                                                                  TupOutputState *tstate);
+extern DLLIMPORT ExplainOneQuery_hook_type ExplainOneQuery_hook;
+
+/* Hook for plugins to get control in explain_get_index_name() */
+typedef const char * (*explain_get_index_name_hook_type) (Oid indexId);
+extern DLLIMPORT explain_get_index_name_hook_type explain_get_index_name_hook;
+
 
 extern void ExplainQuery(ExplainStmt *stmt, const char *queryString,
                                                 ParamListInfo params, DestReceiver *dest);
@@ -26,7 +38,7 @@ extern void ExplainOneUtility(Node *utilityStmt, ExplainStmt *stmt,
                                                          ParamListInfo params,
                                                          TupOutputState *tstate);
 
-extern void ExplainOnePlan(QueryDesc *queryDesc, ExplainStmt *stmt,
-                          TupOutputState *tstate);
+extern void ExplainOnePlan(PlannedStmt *plannedstmt, ParamListInfo params,
+                                                  ExplainStmt *stmt, TupOutputState *tstate);
 
 #endif   /* EXPLAIN_H */