Changeset: 70aff6bf7838 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=70aff6bf7838 Modified Files: sql/server/rel_bin.c sql/server/rel_optimizer.c Branch: Jul2012 Log Message:
fixed 2 expressions found by coverity Fixed bug where the rewrite of like expressions lead to crashes. diffs (34 lines): diff --git a/sql/server/rel_bin.c b/sql/server/rel_bin.c --- a/sql/server/rel_bin.c +++ b/sql/server/rel_bin.c @@ -1617,7 +1617,7 @@ rel2bin_semijoin( mvc *sql, sql_rel *rel stmt *s = NULL; /* only handle simple joins here */ - if (list_length(jns) && (idx || !e->type == e_cmp || e->flag != cmp_equal)) + if (list_length(jns) && (idx || e->type != e_cmp || e->flag != cmp_equal)) break; s = exp_bin(sql, en->data, left, right, NULL, NULL); diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -4840,7 +4840,8 @@ rel_simplify_like_select(int *changes, m rewrite = 0; } if (rewrite) { /* rewrite to cmp_equal ! */ - sql_exp *ne = exp_compare(sql->sa, e->l, e->r, cmp_equal); + list *r = e->r; + sql_exp *ne = exp_compare(sql->sa, e->l, r->h->data, cmp_equal); /* if rewriten don't cache this query */ list_append(exps, ne); sql->caching = 0; @@ -5550,7 +5551,7 @@ _rel_optimizer(mvc *sql, sql_rel *rel, i rel = rewrite(sql, rel, &rel_remove_empty_select, &e_changes); } - if (gp.cnt[op_select] && !sql->emode == m_prepare) + if (gp.cnt[op_select] && sql->emode != m_prepare) rel = rewrite(sql, rel, &rel_simplify_like_select, &changes); if (gp.cnt[op_select]) _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list