From 611afd9f4b3536b15912ead6cea5db88ea4fad35 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 12 Nov 2001 17:18:06 +0000 Subject: [PATCH] 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. --- src/backend/executor/nodeIndexscan.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c index 318ebc6f6c..5afee29f52 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 -- 2.11.0