Changeset: 4d07d0070afb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4d07d0070afb
Modified Files:
sql/server/rel_exp.c
sql/server/rel_unnest.c
Branch: linear-hashing
Log Message:
cleanup true=true early, solves later problems in rel_bin rel2bin_semijoin
diffs (23 lines):
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1597,6 +1597,8 @@ exp_is_true(mvc *sql, sql_exp *e)
return atom_is_true(sql->args[e->flag]);
}
}
+ if (e->type == e_cmp && e->flag == cmp_equal)
+ return (exp_is_true(sql, e->l) && exp_is_true(sql, e->r));
return 0;
}
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
@@ -2793,6 +2793,7 @@ rel_unnest(mvc *sql, sql_rel *rel)
rel = rel_visitor(sql, rel, &rewrite_join2semi); /* where
possible convert anyequal functions into marks */
rel = rel_visitor(sql, rel, &rewrite_compare_exp); /* only allow
for e_cmp in selects and handling */
rel = rel_visitor(sql, rel, &rewrite_remove_xp_project); /*
remove crossproducts with project ( project [ atom ] ) [ etc ] */
+ rel = rel_visitor(sql, rel, &rewrite_simplify); /* as
expressions got merged before, lets try to simplify again */
rel = _rel_unnest(sql, rel);
rel = rel_visitor(sql, rel, &rewrite_fix_count); /* fix count
inside a left join (adds a project (if (cnt IS null) then (0) else (cnt)) */
rel = rel_visitor(sql, rel, &rewrite_remove_xp); /* remove
crossproducts with project [ atom ] */
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list