Changeset: e32e70fa2fbe for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e32e70fa2fbe Modified Files: sql/backends/monet5/rel_bin.c sql/server/rel_unnest.c Branch: default Log Message:
fixes for 2 more sqlancer issues, 1) in handle_in_exps make sure we have a 'bat' for 'select' (ie reduce) expressions 2) make sure we do not see 0.2 = 0.3 as true, ie if only right could be seen as true, the expression may still be false or nil. diffs (25 lines): diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c --- a/sql/backends/monet5/rel_bin.c +++ b/sql/backends/monet5/rel_bin.c @@ -371,6 +371,9 @@ handle_in_exps(backend *be, sql_exp *ce, if(!c) return NULL; + if (reduce && c->nrcols == 0) + c = stmt_const(be, bin_first_column(be, left), c); + if (c->nrcols == 0 || (depth && !reduce)) { sql_subtype *bt = sql_bind_localtype("bit"); sql_subfunc *cmp = (in) diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c --- a/sql/server/rel_unnest.c +++ b/sql/server/rel_unnest.c @@ -2690,7 +2690,7 @@ rewrite_ifthenelse(visitor *v, sql_rel * for (node *n = l->h ; n ; n = n->next) { sql_exp *e = n->data; - if (e->type == e_cmp && e->flag == cmp_equal && exp_is_true(e->r)) + if (e->type == e_cmp && e->flag == cmp_equal && exp_is_true(e) && exp_is_true(e->r)) n->data = e->l; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list