Changeset: 0569cee94eac for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0569cee94eac
Modified Files:
sql/server/rel_optimizer.c
Branch: default
Log Message:
make sure we do an inplace group by for the referenced setjoins in the setjoin
rewriter
diffs (26 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
@@ -9835,8 +9835,20 @@ rel_setjoins_2_joingroupby(visitor *v, s
}
list *lexps = rel_projections(v->sql, l, NULL, 1, 1);
aexps = list_merge(aexps, lexps, (fdup)NULL);
- rel = rel_groupby(v->sql, rel,
list_append(sa_list(v->sql->sa), exp_ref(v->sql, lid)));
- rel->exps = aexps;
+ if (rel_is_ref(rel)) {
+ sql_rel *l = rel_create(v->sql->sa);
+ if (!l)
+ return NULL;
+ *l = *rel;
+ /* properly increment the ref counts */
+ rel_dup(rel->l);
+ rel_dup(rel->r);
+ l->ref.refcnt = 1;
+ rel = rel_inplace_groupby(rel, l,
list_append(sa_list(v->sql->sa), exp_ref(v->sql, lid)), aexps);
+ } else {
+ rel = rel_groupby(v->sql, rel,
list_append(sa_list(v->sql->sa), exp_ref(v->sql, lid)));
+ rel->exps = aexps;
+ }
}
}
return rel;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list