aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-11-12 17:18:06 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-11-12 17:18:06 +0000
commit611afd9f4b3536b15912ead6cea5db88ea4fad35 (patch)
tree3be503e746e9e36b88b4f9b37e28a01fd5c47a70
parent0f214edeb137c6edd27b87f21e40f82a7ce2fd1c (diff)
downloadpostgresql-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.
-rw-r--r--src/backend/executor/nodeIndexscan.c11
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