diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c index 318ebc6f6c9ff749a00d7084026d83f497d7eaf2..5afee29f5271130d2ffdd33d293ac2298b2994e6 100644 --- a/src/backend/executor/nodeIndexscan.c +++ b/src/backend/executor/nodeIndexscan.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.64 2001/10/28 06:25:43 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.65 2001/11/12 17:18:06 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -339,10 +339,17 @@ ExecIndexReScan(IndexScan *node, ExprContext *exprCtxt, Plan *parent) { /* * If we are being passed an outer tuple, save it for runtime key - * calc + * calc. We also need to link it into the "regular" per-tuple + * econtext, so it can be used during indexqualorig evaluations. */ if (exprCtxt != NULL) + { + ExprContext *stdecontext; + econtext->ecxt_outertuple = exprCtxt->ecxt_outertuple; + stdecontext = node->scan.scanstate->cstate.cs_ExprContext; + stdecontext->ecxt_outertuple = exprCtxt->ecxt_outertuple; + } /* * Reset the runtime-key context so we don't leak memory as each