Changeset: 33cd98758bd8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/33cd98758bd8
Modified Files:
sql/server/rel_optimizer.c
Branch: default
Log Message:
also push select into semi joins
diffs (21 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
@@ -4452,7 +4452,7 @@ rel_push_select_down(visitor *v, sql_rel
if (pl && pl->op != op_ddl && !exps_have_unsafe(r->exps, 0)) {
/* introduce selects under the project (if needed) */
set_processed(pl);
- if (pl && (is_select(pl->op) || is_join(pl->op)) &&
!pl->exps)
+ if (pl && (is_select(pl->op) || is_join(pl->op) ||
is_semi(pl->op)) && !pl->exps)
pl->exps = sa_list(v->sql->sa);
for (n = exps->h; n;) {
node *next = n->next;
@@ -4463,7 +4463,7 @@ rel_push_select_down(visitor *v, sql_rel
/* can we move it down */
if (ne && ne != e && pl->exps) {
- if (!(is_select(pl->op) &&
is_join(pl->op)) || rel_is_ref(pl))
+ if (!(is_select(pl->op) &&
is_join(pl->op) && is_semi(pl->op)) || rel_is_ref(pl))
r->l = pl =
rel_select(v->sql->sa, pl, NULL);
rel_select_add_exp(v->sql->sa,
pl, ne);
list_remove_node(exps, NULL, n);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]