Changeset: 5a7b7826c91e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/5a7b7826c91e Added Files: sql/test/BugTracker-2021/Tests/rollup-distinct-count.Bug-7146.test Removed Files: sql/test/BugTracker-2021/Tests/rollup-distinct-count.Bug-7146.sql sql/test/BugTracker-2021/Tests/rollup-distinct-count.Bug-7146.stable.err sql/test/BugTracker-2021/Tests/rollup-distinct-count.Bug-7146.stable.out Modified Files: sql/server/rel_unnest.c sql/test/BugTracker-2021/Tests/All Branch: Jul2021 Log Message:
Merged with Oct2020 and converted diffs (149 lines): 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 @@ -3451,8 +3451,9 @@ rewrite_groupings(visitor *v, sql_rel *r if (exp_name(e)) exp_prop_alias(v->sql->sa, ne, e); } else { - ne = exp_ref(v->sql, e); - append(exps, e); + sql_exp *ec = exp_copy(v->sql, e); + ne = exp_ref(v->sql, ec); + append(exps, ec); } append(pexps, ne); } diff --git a/sql/test/BugTracker-2021/Tests/All b/sql/test/BugTracker-2021/Tests/All --- a/sql/test/BugTracker-2021/Tests/All +++ b/sql/test/BugTracker-2021/Tests/All @@ -18,3 +18,4 @@ HAVE_LIBPY3?python-aggregates-void-bat.B count-distinct.Bug-7141 HAVE_LIBPY3?aggregates-tables.Bug-7142 type-upcasting-INT2BIGINT.Bug-7144 +rollup-distinct-count.Bug-7146 diff --git a/sql/test/BugTracker-2021/Tests/rollup-distinct-count.Bug-7146.test b/sql/test/BugTracker-2021/Tests/rollup-distinct-count.Bug-7146.test new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2021/Tests/rollup-distinct-count.Bug-7146.test @@ -0,0 +1,121 @@ +query I rowsort +select count(distinct b) from ( +select 'a' b, 'A' c +union all select 'b', 'C' +) T group by rollup(c) +---- +1 +1 +2 + +query TI rowsort +select c, count(distinct b) from ( +select 1 a, 'a' b, 'A' c +union all select 2, 'b', 'C' +union all select 3, 'c', 'C' +union all select 4, 'a', 'A' +union all select 5, 'c', 'B' +union all select 6, 'd', 'A' +union all select 7, 'a', 'B' +union all select 8, 'b', 'D' +union all select 9, null, 'D' +) T +group by rollup(c) +---- +A +2 +B +2 +C +2 +D +1 +NULL +4 + +query TI rowsort +select c, count(b) from ( +select 1 a, 'a' b, 'A' c +union all select 2, 'b', 'C' +union all select 3, 'c', 'C' +union all select 4, 'a', 'A' +union all select 5, 'c', 'B' +union all select 6, 'd', 'A' +union all select 7, 'a', 'B' +union all select 8, 'b', 'D' +union all select 9, null, 'D' +) T +group by rollup(c) +---- +A +3 +B +2 +C +2 +D +1 +NULL +8 + +query I rowsort +select count(distinct b) from ( +select 'a' b, 'A' c +union all select 'b', 'C' +) T group by cube(c) +---- +1 +1 +2 + +query TI rowsort +select c, count(distinct b) from ( +select 1 a, 'a' b, 'A' c +union all select 2, 'b', 'C' +union all select 3, 'c', 'C' +union all select 4, 'a', 'A' +union all select 5, 'c', 'B' +union all select 6, 'd', 'A' +union all select 7, 'a', 'B' +union all select 8, 'b', 'D' +union all select 9, null, 'D' +) T +group by cube(c) +---- +A +2 +B +2 +C +2 +D +1 +NULL +4 + +query TI rowsort +select c, count(b) from ( +select 1 a, 'a' b, 'A' c +union all select 2, 'b', 'C' +union all select 3, 'c', 'C' +union all select 4, 'a', 'A' +union all select 5, 'c', 'B' +union all select 6, 'd', 'A' +union all select 7, 'a', 'B' +union all select 8, 'b', 'D' +union all select 9, null, 'D' +) T +group by cube(c) +---- +A +3 +B +2 +C +2 +D +1 +NULL +8 + + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list