Changeset: 4c7ca476da37 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4c7ca476da37 Modified Files: sql/server/rel_optimizer.c Branch: default Log Message:
Look for join2semi optimization under select relations diffs (33 lines): 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 @@ -5347,7 +5347,7 @@ find_candidate_join2semi(visitor *v, sql (c=find_candidate_join2semi(v, rel->r, swap)) != NULL) return c; } - if (is_topn(rel->op) || is_sample(rel->op)) + if (is_topn(rel->op) || is_sample(rel->op) || is_select(rel->op)) return find_candidate_join2semi(v, rel->l, swap); return NULL; } @@ -5357,7 +5357,7 @@ subrel_uses_exp_outside_subrel(sql_rel * { if (rel == c) return 0; - /* for subrel only expect joins (later possibly selects) */ + /* for subrel only expect joins and selects */ if (is_join(rel->op) || is_semi(rel->op)) { if (exps_uses_any(rel->exps, l)) return 1; @@ -5365,6 +5365,11 @@ subrel_uses_exp_outside_subrel(sql_rel * subrel_uses_exp_outside_subrel(rel->r, l, c)) return 1; } + if (is_select(rel->op)) { + if (exps_uses_any(rel->exps, l)) + return 1; + return subrel_uses_exp_outside_subrel(rel->l, l, c); + } if (is_topn(rel->op) || is_sample(rel->op)) return subrel_uses_exp_outside_subrel(rel->l, l, c); return 0; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list