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 {
227227 . collect :: < Result < _ > > ( ) ?;
228228
229229 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+
231235 let enable_experimental_aggregate_hashtable =
232236 settings. get_enable_experimental_aggregate_hashtable ( ) ?;
233237
Original file line number Diff line number Diff line change @@ -339,7 +339,14 @@ impl Operator for Aggregate {
339339 let settings = ctx. get_settings ( ) ;
340340
341341 // 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 ( ) {
343350 "before_partial" => {
344351 children_required. push ( vec ! [ RequiredProperty {
345352 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