Changeset: 5c0fa067eb7f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5c0fa067eb7f
Modified Files:
        sql/server/rel_optimize_exps.c
        sql/server/rel_optimize_proj.c
Branch: properties
Log Message:

Don't be that restrictive on the existence of null values


diffs (42 lines):

diff --git a/sql/server/rel_optimize_exps.c b/sql/server/rel_optimize_exps.c
--- a/sql/server/rel_optimize_exps.c
+++ b/sql/server/rel_optimize_exps.c
@@ -80,7 +80,7 @@ exp_simplify_math( mvc *sql, sql_exp *e,
                        sql_subtype *et = exp_subtype(e);
 
                        /* 0*a = 0 */
-                       if (exp_is_atom(le) && exp_is_zero(le) && 
exp_is_atom(re) && exp_is_not_null(re)) {
+                       if (exp_is_atom(le) && exp_is_zero(le) && 
exp_is_atom(re) && !has_nil(re)) {
                                (*changes)++;
                                le = exp_zero(sql->sa, et);
                                if (subtype_cmp(exp_subtype(e), 
exp_subtype(le)) != 0)
@@ -90,7 +90,7 @@ exp_simplify_math( mvc *sql, sql_exp *e,
                                return le;
                        }
                        /* a*0 = 0 */
-                       if (exp_is_atom(re) && exp_is_zero(re) && 
exp_is_atom(le) && exp_is_not_null(le)) {
+                       if (exp_is_atom(re) && exp_is_zero(re) && 
exp_is_atom(le) && !has_nil(le)) {
                                (*changes)++;
                                re = exp_zero(sql->sa, et);
                                if (subtype_cmp(exp_subtype(e), 
exp_subtype(re)) != 0)
@@ -255,7 +255,7 @@ exp_simplify_math( mvc *sql, sql_exp *e,
                                        }
                                }
                        }
-                       if (exp_is_not_null(le) && exp_is_not_null(re) && 
exp_equal(le,re) == 0) { /* a - a = 0 */
+                       if (!has_nil(le) && !has_nil(re) && exp_equal(le,re) == 
0) { /* a - a = 0 */
                                atom *a;
                                sql_exp *ne;
 
diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c
--- a/sql/server/rel_optimize_proj.c
+++ b/sql/server/rel_optimize_proj.c
@@ -2831,7 +2831,7 @@ rel_simplify_count(visitor *v, sql_rel *
                        if (exp_aggr_is_count(e) && !need_distinct(e)) {
                                if (list_length(e->l) == 0) {
                                        ncountstar++;
-                               } else if (list_length(e->l) == 1 && 
exp_is_not_null((sql_exp*)((list*)e->l)->h->data)) {
+                               } else if (list_length(e->l) == 1 && 
!has_nil((sql_exp*)((list*)e->l)->h->data)) {
                                        sql_subfunc *cf = sql_bind_func(sql, 
"sys", "count", sql_bind_localtype("void"), NULL, F_AGGR, true);
                                        sql_exp *ne = exp_aggr(sql->sa, NULL, 
cf, 0, 0, e->card, 0);
                                        if (exp_name(e))
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to