summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2009-12-15 20:04:49 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2009-12-15 20:04:49 +0000
commita5495cd8411b65de86a0ad5bf4e29a8e985eb677 (patch)
tree428c2686c4a32c3a30467bf5a5e738e4549c6058 /src/include
parent34d26872ed816b299eef2fa4240d55316697f42d (diff)
Add a hook to let loadable modules get control at ProcessUtility execution,
and use it to extend contrib/pg_stat_statements to track utility commands. Itagaki Takahiro, reviewed by Euler Taveira de Oliveira.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/tcop/utility.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/include/tcop/utility.h b/src/include/tcop/utility.h
index 271a97d690a..8db35f6a01a 100644
--- a/src/include/tcop/utility.h
+++ b/src/include/tcop/utility.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/tcop/utility.h,v 1.37 2009/12/01 02:31:13 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/tcop/utility.h,v 1.38 2009/12/15 20:04:49 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -17,9 +17,18 @@
#include "tcop/tcopprot.h"
+/* Hook for plugins to get control in ProcessUtility() */
+typedef void (*ProcessUtility_hook_type) (Node *parsetree,
+ const char *queryString, ParamListInfo params, bool isTopLevel,
+ DestReceiver *dest, char *completionTag);
+extern PGDLLIMPORT ProcessUtility_hook_type ProcessUtility_hook;
+
extern void ProcessUtility(Node *parsetree, const char *queryString,
ParamListInfo params, bool isTopLevel,
DestReceiver *dest, char *completionTag);
+extern void standard_ProcessUtility(Node *parsetree, const char *queryString,
+ ParamListInfo params, bool isTopLevel,
+ DestReceiver *dest, char *completionTag);
extern bool UtilityReturnsTuples(Node *parsetree);