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

Reply via email to