File tree Expand file tree Collapse file tree 3 files changed +26
-2
lines changed
tests/sqllogictests/suites/tpcds Expand file tree Collapse file tree 3 files changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -227,7 +227,11 @@ impl PhysicalPlanBuilder {
227
227
. collect :: < Result < _ > > ( ) ?;
228
228
229
229
let settings = self . ctx . get_settings ( ) ;
230
- let group_by_shuffle_mode = settings. get_group_by_shuffle_mode ( ) ?;
230
+ let mut group_by_shuffle_mode = settings. get_group_by_shuffle_mode ( ) ?;
231
+ if agg. grouping_sets . is_some ( ) {
232
+ group_by_shuffle_mode = "before_merge" . to_string ( ) ;
233
+ }
234
+
231
235
let enable_experimental_aggregate_hashtable =
232
236
settings. get_enable_experimental_aggregate_hashtable ( ) ?;
233
237
Original file line number Diff line number Diff line change @@ -339,7 +339,14 @@ impl Operator for Aggregate {
339
339
let settings = ctx. get_settings ( ) ;
340
340
341
341
// Group aggregation, enforce `Hash` distribution
342
- match settings. get_group_by_shuffle_mode ( ) ?. as_str ( ) {
342
+ let mut group_by_shuffle_mode = settings. get_group_by_shuffle_mode ( ) ?;
343
+
344
+ // Grouping set must be merged before_merge
345
+ if self . grouping_sets . is_some ( ) {
346
+ group_by_shuffle_mode = "before_merge" . to_string ( ) ;
347
+ }
348
+
349
+ match group_by_shuffle_mode. as_str ( ) {
343
350
"before_partial" => {
344
351
children_required. push ( vec ! [ RequiredProperty {
345
352
distribution: Distribution :: Hash ( self . get_distribution_keys( true ) ?) ,
Original file line number Diff line number Diff line change
1
+ statement ok
2
+ set sandbox_tenant = 'test_tenant';
3
+
4
+ statement ok
5
+ use tpcds;
6
+
7
+ statement ok
8
+ set group_by_shuffle_mode = 'before_partial';
9
+
10
+ include ./Q5
11
+
12
+ statement ok
13
+ UNSET group_by_shuffle_mode;
You can’t perform that action at this time.
0 commit comments