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]