Changeset: d0a394e5a53c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d0a394e5a53c
Modified Files:
sql/server/rel_optimize_sel.c
sql/server/rel_unnest.c
Branch: manti
Log Message:
only disable pushdowns for pipeline
only enable rewrite into markjoin for pipeline
diffs (32 lines):
diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -3066,7 +3066,7 @@ rel_push_select_down(visitor *v, sql_rel
exps = rel->exps;
/* push select through join */
- if (is_select(rel->op) && r && is_join(r->op) && list_empty(r->attr) &&
(MT_thread_get_qry_ctx()->pipeline_mode) && !rel_is_ref(r) && !is_single(r)){
+ if (is_select(rel->op) && r && is_join(r->op) &&
(!(MT_thread_get_qry_ctx()->pipeline_mode) || list_empty(r->attr)) &&
!rel_is_ref(r) && !is_single(r)) {
sql_rel *jl = r->l, *ojl = jl, *jr = r->r, *ojr = jr;
int left = r->op == op_join || r->op == op_left;
int right = r->op == op_join || r->op == op_right;
@@ -3108,7 +3108,7 @@ rel_push_select_down(visitor *v, sql_rel
}
/* merge select and cross product ? TODO a more precies way to check if
we can merge a select and a group-join than simply disable it with
list_empty(r->attr) */
- if (is_select(rel->op) && r && r->op == op_join && list_empty(r->attr)
&& (MT_thread_get_qry_ctx()->pipeline_mode) && !rel_is_ref(r) && !is_single(r)
&& !exps_have_unsafe(exps, false, true)) {
+ if (is_select(rel->op) && r && r->op == op_join &&
(!(MT_thread_get_qry_ctx()->pipeline_mode) || list_empty(r->attr)) &&
!rel_is_ref(r) && !is_single(r) && !exps_have_unsafe(exps, false, true)) {
for (n = exps->h; n;) {
node *next = n->next;
sql_exp *e = n->data;
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
@@ -2371,6 +2371,7 @@ rewrite_anyequal(visitor *v, sql_rel *re
(void)rewrite_inner(sql, rel, rsq, op,
&rewrite, NULL);
exp_reset_props(rewrite, re,
is_left(rewrite->op));
}
+ tomarkjoin &=
(MT_thread_get_qry_ctx()->pipeline_mode);
if (!rewrite)
return NULL;
sql_exp *inexp;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]