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

Reply via email to