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

Reply via email to