]> granicus.if.org Git - postgresql/commitdiff
Remove useless ps_OuterTupleSlot field from PlanState. I suppose this was
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 23 Oct 2008 14:34:34 +0000 (14:34 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 23 Oct 2008 14:34:34 +0000 (14:34 +0000)
used long ago, but in the current code the ecxt_outertuple field of
ExprContext is doing all the work.  Spotted by Ran Tang.

src/backend/executor/nodeHashjoin.c
src/backend/executor/nodeNestloop.c
src/include/nodes/execnodes.h

index 4534845b5272e583fdb8810966cf5649c72ff3b0..319b48b6a80cffed18c761ba69b767758a16a09d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.95 2008/08/15 19:20:42 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.96 2008/10/23 14:34:34 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -193,7 +193,6 @@ ExecHashJoin(HashJoinState *node)
                                return NULL;
                        }
 
-                       node->js.ps.ps_OuterTupleSlot = outerTupleSlot;
                        econtext->ecxt_outertuple = outerTupleSlot;
                        node->hj_NeedNewOuter = false;
                        node->hj_MatchedOuter = false;
@@ -482,7 +481,6 @@ ExecInitHashJoin(HashJoin *node, EState *estate, int eflags)
        /* child Hash node needs to evaluate inner hash keys, too */
        ((HashState *) innerPlanState(hjstate))->hashkeys = rclauses;
 
-       hjstate->js.ps.ps_OuterTupleSlot = NULL;
        hjstate->js.ps.ps_TupFromTlist = false;
        hjstate->hj_NeedNewOuter = true;
        hjstate->hj_MatchedOuter = false;
@@ -884,7 +882,6 @@ ExecReScanHashJoin(HashJoinState *node, ExprContext *exprCtxt)
        node->hj_CurBucketNo = 0;
        node->hj_CurTuple = NULL;
 
-       node->js.ps.ps_OuterTupleSlot = NULL;
        node->js.ps.ps_TupFromTlist = false;
        node->hj_NeedNewOuter = true;
        node->hj_MatchedOuter = false;
index 27e3582649ec7382e6d1466faab5f48b2b644c02..8b6fe76b1204fca1183c0f8fda3175ef636785a2 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/executor/nodeNestloop.c,v 1.48 2008/08/15 19:20:42 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/executor/nodeNestloop.c,v 1.49 2008/10/23 14:34:34 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -78,12 +78,6 @@ ExecNestLoop(NestLoopState *node)
        innerPlan = innerPlanState(node);
        econtext = node->js.ps.ps_ExprContext;
 
-       /*
-        * get the current outer tuple
-        */
-       outerTupleSlot = node->js.ps.ps_OuterTupleSlot;
-       econtext->ecxt_outertuple = outerTupleSlot;
-
        /*
         * Check to see if we're still projecting out tuples from a previous join
         * tuple (because there is a function-returning-set in the projection
@@ -135,7 +129,6 @@ ExecNestLoop(NestLoopState *node)
                        }
 
                        ENL1_printf("saving new outer tuple information");
-                       node->js.ps.ps_OuterTupleSlot = outerTupleSlot;
                        econtext->ecxt_outertuple = outerTupleSlot;
                        node->nl_NeedNewOuter = false;
                        node->nl_MatchedOuter = false;
@@ -357,7 +350,6 @@ ExecInitNestLoop(NestLoop *node, EState *estate, int eflags)
        /*
         * finally, wipe the current outer tuple clean.
         */
-       nlstate->js.ps.ps_OuterTupleSlot = NULL;
        nlstate->js.ps.ps_TupFromTlist = false;
        nlstate->nl_NeedNewOuter = true;
        nlstate->nl_MatchedOuter = false;
@@ -426,8 +418,6 @@ ExecReScanNestLoop(NestLoopState *node, ExprContext *exprCtxt)
        if (outerPlan->chgParam == NULL)
                ExecReScan(outerPlan, exprCtxt);
 
-       /* let outerPlan to free its result tuple ... */
-       node->js.ps.ps_OuterTupleSlot = NULL;
        node->js.ps.ps_TupFromTlist = false;
        node->nl_NeedNewOuter = true;
        node->nl_MatchedOuter = false;
index c10204a91004949380b6849fb0f3d92599a242d6..5b46f6e70874b810e42a72fcaca3349d2d84704d 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.190 2008/10/07 19:27:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.191 2008/10/23 14:34:34 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -868,7 +868,7 @@ typedef struct PlanState
 
        Plan       *plan;                       /* associated Plan node */
 
-       EState     *state;                      /* at execution time, state's of individual
+       EState     *state;                      /* at execution time, states of individual
                                                                 * nodes point to one EState for the whole
                                                                 * top-level plan */
 
@@ -896,12 +896,11 @@ typedef struct PlanState
        /*
         * Other run-time state needed by most if not all node types.
         */
-       TupleTableSlot *ps_OuterTupleSlot;      /* slot for current "outer" tuple */
        TupleTableSlot *ps_ResultTupleSlot; /* slot for my result tuples */
        ExprContext *ps_ExprContext;    /* node's expression-evaluation context */
        ProjectionInfo *ps_ProjInfo;    /* info for doing tuple projection */
-       bool            ps_TupFromTlist;/* state flag for processing set-valued
-                                                                * functions in targetlist */
+       bool            ps_TupFromTlist;        /* state flag for processing set-valued
+                                                                        * functions in targetlist */
 } PlanState;
 
 /* ----------------