Changeset: cb8eacc60a2b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cb8eacc60a2b
Modified Files:
sql/server/rel_select.c
Branch: default
Log Message:
make sure we set the (lower) join as dependent when we have outer references
diffs (41 lines):
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -1119,6 +1119,15 @@ is_groupby_col(sql_rel *gb, sql_exp *e)
return 0;
}
+static void
+set_dependent_( sql_rel *r)
+{
+ if (is_select(r->op))
+ r = r->l;
+ if (r && is_join(r->op))
+ set_dependent(r);
+}
+
static sql_exp *
rel_column_ref(sql_query *query, sql_rel **rel, symbol *column_r, int f)
{
@@ -1183,8 +1192,8 @@ rel_column_ref(sql_query *query, sql_rel
if (!is_sql_where(of) && !is_sql_aggr(of) &&
!is_sql_aggr(f) && !outer->grouped)
set_outer(outer);
}
- if (exp && outer && is_join(outer->op))
- set_dependent(outer);
+ if (exp && outer && (is_select(outer->op) ||
is_join(outer->op)))
+ set_dependent_(outer);
}
/* some views are just in the stack, like before and after
updates views */
@@ -1269,8 +1278,8 @@ rel_column_ref(sql_query *query, sql_rel
if (!is_sql_where(of) && !is_sql_aggr(of) &&
!is_sql_aggr(f) && !outer->grouped)
set_outer(outer);
}
- if (exp && outer && is_join(outer->op))
- set_dependent(outer);
+ if (exp && outer && (is_select(outer->op) ||
is_join(outer->op)))
+ set_dependent_(outer);
}
/* some views are just in the stack, like before and after
updates views */
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]