From 611afd9f4b3536b15912ead6cea5db88ea4fad35 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
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.24.1