Changeset: 188c793f2e0e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/188c793f2e0e
Modified Files:
        sql/server/rel_exp.c
        sql/server/rel_rewriter.c
Branch: groupjoin
Log Message:

enable some more expression rewriting on left outer group joins


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
@@ -1832,6 +1832,7 @@ exp_regular_cmp_exp_is_false(sql_exp* e)
     assert(e->type == e_cmp);
 
     if (is_semantics(e) && !is_any(e)) return exp_is_cmp_exp_is_false(e);
+       if (is_any(e)) return false;
     if (e -> f)         return exp_two_sided_bound_cmp_exp_is_false(e);
     else                return exp_single_bound_cmp_exp_is_false(e);
 }
diff --git a/sql/server/rel_rewriter.c b/sql/server/rel_rewriter.c
--- a/sql/server/rel_rewriter.c
+++ b/sql/server/rel_rewriter.c
@@ -205,7 +205,7 @@ rewrite_simplify(visitor *v, uint8_t cyc
 
        if ((is_select(rel->op) || is_join(rel->op) || is_semi(rel->op)) && 
!list_empty(rel->exps)) {
                int changes = v->changes;
-               rel->exps = list_empty(rel->attr)?exps_simplify_exp(v, 
rel->exps):rel->exps;
+               rel->exps = exps_simplify_exp(v, rel->exps);
                /* At a select or inner join relation if the single expression 
is false, eliminate the inner relations with a dummy projection */
                if (value_based_opt && (v->changes > changes || cycle == 0) && 
(is_select(rel->op) || is_innerjoin(rel->op)) &&
                        !is_single(rel) && list_length(rel->exps) == 1 && 
(exp_is_false(rel->exps->h->data) || exp_is_null(rel->exps->h->data))) {
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to