Changeset: 33e3e1fdb08d for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=33e3e1fdb08d Modified Files: sql/src/server/rel_select.mx Branch: Oct2010 Log Message:
fix handling of select x from y where a < (select ..) (now handled through a semijoin) diffs (32 lines): diff -r bd70cf18b649 -r 33e3e1fdb08d sql/src/server/rel_select.mx --- a/sql/src/server/rel_select.mx Thu Sep 16 23:25:14 2010 +0200 +++ b/sql/src/server/rel_select.mx Thu Sep 16 23:26:28 2010 +0200 @@ -584,7 +584,7 @@ void rel_join_add_exp( sql_rel *rel, sql_exp *e) { - assert(is_join(rel->op)); + assert(is_join(rel->op) || is_semi(rel->op)); if (!rel->exps) rel->exps = new_exp_list(); @@ -1998,6 +1998,10 @@ else return sql_error(sql, 02, "SELECT: cannot use non GROUP BY column in query results without an aggregate function"); } + if (is_semi(rel->op)) { + rel_join_add_exp(rel, e); + return rel; + } if (rs->card <= CARD_ATOM && exp_is_atom(rs)) { if (ls->card == rs->card) /* bin compare op */ return rel_select(rel, e); @@ -2096,7 +2100,7 @@ rs = exp_aggr1(rs, zero_or_one, 0, 0, CARD_ATOM, 0); } - rel = rel_crossproduct(rel, r, op_join); + rel = rel_crossproduct(rel, r, op_semi); } } if (!rs) { _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list