summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/createplan.c
diff options
context:
space:
mode:
authorVadim B. Mikheev <vadim4o@yahoo.com>1997-04-22 03:32:38 +0000
committerVadim B. Mikheev <vadim4o@yahoo.com>1997-04-22 03:32:38 +0000
commit051b4210e3cb3f3a9ec7cd5ab4503b48f279ab48 (patch)
treebb7f62d9e6b675c82a95aef92cf23895e6bd2256 /src/backend/optimizer/plan/createplan.c
parent435b9ed2f26a57e51a9f029250121fef2e8052b4 (diff)
downloadpostgresql-051b4210e3cb3f3a9ec7cd5ab4503b48f279ab48.tar.gz
Fix for Hash and arrays
Diffstat (limited to 'src/backend/optimizer/plan/createplan.c')
-rw-r--r--src/backend/optimizer/plan/createplan.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index 2783e3917f..c56cc61c80 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.9 1997/03/18 18:40:05 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.10 1997/04/22 03:30:36 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -734,10 +734,16 @@ switch_outer(List *clauses)
Expr *temp = NULL;
List *i = NIL;
Expr *clause;
+ Node *op;
foreach(i,clauses) {
clause = lfirst(i);
- if(var_is_outer(get_rightop(clause))) {
+ op = (Node*)get_rightop(clause);
+ if ( IsA (op, ArrayRef) )
+ op = ((ArrayRef*)op)->refexpr;
+ Assert ( IsA (op, Var) );
+ if ( var_is_outer ((Var*)op) )
+ {
temp = make_clause(clause->opType, clause->oper,
lcons(get_rightop(clause),
lcons(get_leftop(clause),