Changeset: 3dd57abc3260 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3dd57abc3260 Modified Files: sql/backends/monet5/rel_bin.c Branch: default Log Message:
make sure a between (l.a 'const' <= l.l <= r.a) is seen as a select expression (ie in sqlancer02 test we need a cross first). TODO create optimizer to split this between and to check better for constants. diffs (19 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 @@ -2244,11 +2244,11 @@ split_join_exps(sql_rel *rel, list *join int nrcr1 = 0, nrcr2 = 0, nrcl1 = 0, nrcl2 = 0; if ((ll && !rl && - ((rr && !lr) || (nrcr1 = r->card == CARD_ATOM)) && - ((rf && !lf) || (nrcr2 = f->card == CARD_ATOM)) && (nrcr1+nrcr2) <= 1) || + ((rr && !lr) || (nrcr1 = r->card == CARD_ATOM && exp_is_atom(r))) && + ((rf && !lf) || (nrcr2 = f->card == CARD_ATOM && exp_is_atom(f))) && (nrcr1+nrcr2) <= 1) || (rl && !ll && - ((lr && !rr) || (nrcl1 = r->card == CARD_ATOM)) && - ((lf && !rf) || (nrcl2 = f->card == CARD_ATOM)) && (nrcl1+nrcl2) <= 1)) { + ((lr && !rr) || (nrcl1 = r->card == CARD_ATOM && exp_is_atom(r))) && + ((lf && !rf) || (nrcl2 = f->card == CARD_ATOM && exp_is_atom(f))) && (nrcl1+nrcl2) <= 1)) { left_reference = right_reference = 1; } } else { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list