aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/executor/nodeHashjoin.c4
-rw-r--r--src/backend/optimizer/plan/createplan.c10
2 files changed, 8 insertions, 6 deletions
diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c
index 112155bdd37..3d43b7d02b0 100644
--- a/src/backend/executor/nodeHashjoin.c
+++ b/src/backend/executor/nodeHashjoin.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.57 2003/09/25 06:57:59 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.57.2.1 2003/11/25 19:17:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -417,7 +417,7 @@ ExecInitHashJoin(HashJoin *node, EState *estate)
*/
hjstate->hj_InnerHashKeys = (List *)
ExecInitExpr((Expr *) hashNode->hashkeys,
- innerPlanState(hjstate));
+ (PlanState *) hjstate);
((HashState *) innerPlanState(hjstate))->hashkeys =
hjstate->hj_InnerHashKeys;
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index e3ad5bc6554..08db46c942a 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.157 2003/08/27 12:44:12 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.157.2.1 2003/11/25 19:17:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1093,12 +1093,14 @@ create_hashjoin_plan(Query *root,
hashclauses = order_qual_clauses(root, hashclauses);
/*
- * Extract the inner hash keys (right-hand operands of the
- * hashclauses) to put in the Hash node.
+ * Extract the inner hash keys (right-hand operands of the hashclauses)
+ * to put in the Hash node. Must do a deep copy in case there are
+ * subplans in the hash keys.
*/
innerhashkeys = NIL;
foreach(hcl, hashclauses)
- innerhashkeys = lappend(innerhashkeys, get_rightop(lfirst(hcl)));
+ innerhashkeys = lappend(innerhashkeys,
+ copyObject(get_rightop(lfirst(hcl))));
/* We don't want any excess columns in the hashed tuples */
disuse_physical_tlist(inner_plan, best_path->jpath.innerjoinpath);