diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-07-18 18:23:47 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-07-18 18:23:47 +0000 |
commit | 6cc88f0af5b12b22ce1826a26b1a953c434bd165 (patch) | |
tree | 98a83af76e29e4be154878d014436c1aebe95eef /src/include/executor | |
parent | 8d7af89016ad92afc922cfce5d0f93f95d34cf90 (diff) | |
download | postgresql-6cc88f0af5b12b22ce1826a26b1a953c434bd165.tar.gz postgresql-6cc88f0af5b12b22ce1826a26b1a953c434bd165.zip |
Provide a function hook to let plug-ins get control around ExecutorRun.
ITAGAKI Takahiro
Diffstat (limited to 'src/include/executor')
-rw-r--r-- | src/include/executor/executor.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h index 2a920cebb9a..71cb94d4c5d 100644 --- a/src/include/executor/executor.h +++ b/src/include/executor/executor.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/executor/executor.h,v 1.147 2008/03/28 00:21:56 tgl Exp $ + * $PostgreSQL: pgsql/src/include/executor/executor.h,v 1.148 2008/07/18 18:23:47 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -60,6 +60,13 @@ ((*(expr)->evalfunc) (expr, econtext, isNull, isDone)) +/* Hook for plugins to get control in ExecutorRun() */ +typedef TupleTableSlot *(*ExecutorRun_hook_type) (QueryDesc *queryDesc, + ScanDirection direction, + long count); +extern PGDLLIMPORT ExecutorRun_hook_type ExecutorRun_hook; + + /* * prototypes from functions in execAmi.c */ @@ -136,6 +143,8 @@ extern HeapTuple ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot); extern void ExecutorStart(QueryDesc *queryDesc, int eflags); extern TupleTableSlot *ExecutorRun(QueryDesc *queryDesc, ScanDirection direction, long count); +extern TupleTableSlot *standard_ExecutorRun(QueryDesc *queryDesc, + ScanDirection direction, long count); extern void ExecutorEnd(QueryDesc *queryDesc); extern void ExecutorRewind(QueryDesc *queryDesc); extern void InitResultRelInfo(ResultRelInfo *resultRelInfo, |