diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2001-11-12 17:18:06 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2001-11-12 17:18:06 +0000 |
commit | 611afd9f4b3536b15912ead6cea5db88ea4fad35 (patch) | |
tree | 3be503e746e9e36b88b4f9b37e28a01fd5c47a70 /src/backend/executor/nodeIndexscan.c | |
parent | 0f214edeb137c6edd27b87f21e40f82a7ce2fd1c (diff) | |
download | postgresql-611afd9f4b3536b15912ead6cea5db88ea4fad35.tar.gz postgresql-611afd9f4b3536b15912ead6cea5db88ea4fad35.zip |
Repair crash in EvalPlanQual of query involving nestloop with inner
index scan. Problem was that link to outer tuple wasn't being stored
everyplace it needed to be.
Diffstat (limited to 'src/backend/executor/nodeIndexscan.c')
-rw-r--r-- | src/backend/executor/nodeIndexscan.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c index 318ebc6f6c9..5afee29f527 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 |