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

Reply via email to