Changeset: 4620f4b030d8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4620f4b030d8
Modified Files:
sql/server/rel_unnest.c
Branch: default
Log Message:
handle some more join cases within the rewrite_anyequal
diffs (30 lines):
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -2778,22 +2778,22 @@ rewrite_anyequal(visitor *v, sql_rel *re
set_processed(rsq);
}
- if (is_project(rel->op) || (is_select(rel->op) && depth
> 0)) {
+ if (is_project(rel->op) || ((is_select(rel->op) ||
is_outerjoin(rel->op)) && depth > 0)) {
/* we introduced extra selects */
- assert(is_project(rel->op) ||
is_select(rel->op));
+ assert(is_project(rel->op) ||
is_select(rel->op) || is_outerjoin(rel->op));
sql_rel *join = NULL;
if (lsq) {
sql_rel *rewrite = NULL;
(void)rewrite_inner(sql, rel, lsq,
op_left, &rewrite);
exp_reset_props(rewrite, le,
is_left(rewrite->op));
- join = rel->l;
+ join =
(is_full(rel->op)||is_left(rel->op))?rel->r:rel->l;
}
if (rsq) {
sql_rel *rewrite = NULL;
(void)rewrite_inner(sql, rel, rsq,
op_left, &rewrite);
exp_reset_props(rewrite, re,
is_left(rewrite->op));
- join = rel->l;
+ join =
(is_full(rel->op)||is_left(rel->op))?rel->r:rel->l;
}
assert(join && is_join(join->op));
if (join && !join->exps)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]