diff options
Diffstat (limited to 'src/backend/executor/execMain.c')
-rw-r--r-- | src/backend/executor/execMain.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index e0885ec4ccc..cb7a5eb8ee9 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.2 1996/07/30 07:45:27 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.3 1996/09/10 06:48:01 scrappy Exp $ * *------------------------------------------------------------------------- */ @@ -145,6 +145,20 @@ ExecutorRun(QueryDesc *queryDesc, EState *estate, int feature, int count) dest = queryDesc->dest; destination = (void (*)()) DestToFunction(dest); +#ifdef INDEXSCAN_PATCH + /* + * If the plan is an index scan and some of the scan key are + * function arguments rescan the indices after the parameter + * values have been stored in the execution state. DZ - 27-8-1996 + */ + if ((nodeTag(plan) == T_IndexScan) && + (((IndexScan *)plan)->indxstate->iss_RuntimeKeyInfo != NULL)) { + ExprContext *econtext; + econtext = ((IndexScan *)plan)->scan.scanstate->cstate.cs_ExprContext; + ExecIndexReScan((IndexScan *)plan, econtext, plan); + } +#endif + switch(feature) { case EXEC_RUN: |