1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
# name: test/sql/optimizer/test_duplicate_groups_optimizer.test
# description: Test Duplicate Groups optimizer
# group: [optimizer]
statement ok
create table t1(col1 int, col2 int);
statement ok
create table t2(col3 int);
statement ok
insert into t1 values (1, 1);
statement ok
insert into t2 values (1);
statement ok
pragma enable_verification;
query III
select
col1,
col2,
col3
from t1
join t2
on t1.col1 = t2.col3
group by rollup(col1, col2, col3) order by 1, 2 ,3;
----
1 1 1
1 1 NULL
1 NULL NULL
NULL NULL NULL
query III
select
col1,
col2,
col3
from t1
join t2
on t1.col1 = t2.col3
group by cube(col1, col2, col3) order by 1, 2 ,3;
----
1 1 1
1 1 NULL
1 NULL 1
1 NULL NULL
NULL 1 1
NULL 1 NULL
NULL NULL 1
NULL NULL NULL
query III
select
col1,
col2,
col3
from t1
join t2
on t1.col1 = t2.col3
group by grouping sets (col1, col2, col3), (col1, col2), (col1) order by 1, 2 ,3;
----
1 1 1
1 1 NULL
1 1 NULL
statement ok
pragma explain_output='optimized_only';
statement ok
pragma disable_verification;
# make sure there is only one group and unused columns/duplicate groups still
# works.
# if unused columns/duplicate groups combo breaks, each group will be on a separate line
query II
explain select
col1,
col3
from t1
join t2
on t1.col1 = t2.col3
group by col1, col3;
----
logical_opt <REGEX>:.*Groups: col1.*
statement ok
create table t3 (a int, b int, c int);
statement ok
insert into t3 values
(1, 1, 1),
(1, 2, 2),
(1, 1, 1),
(1, 2, 1);
query III
select * from t3 group by cube(a, b, c) order by all;
----
1 1 1
1 1 NULL
1 2 1
1 2 2
1 2 NULL
1 NULL 1
1 NULL 2
1 NULL NULL
NULL 1 1
NULL 1 NULL
NULL 2 1
NULL 2 2
NULL 2 NULL
NULL NULL 1
NULL NULL 2
NULL NULL NULL
|