Skip to content

Commit 2610699

Browse files
committed
Revert "[branch 52] Fix grouping set subset satisfaction (apache#19855)"
This reverts commit eb00fe2.
1 parent a95cef3 commit 2610699

2 files changed

Lines changed: 2 additions & 263 deletions

File tree

datafusion/physical-optimizer/src/enforce_distribution.rs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ use datafusion_common::config::ConfigOptions;
3636
use datafusion_common::error::Result;
3737
use datafusion_common::stats::Precision;
3838
use datafusion_common::tree_node::{Transformed, TransformedResult, TreeNode};
39-
use datafusion_expr::logical_plan::{Aggregate, JoinType};
39+
use datafusion_expr::logical_plan::JoinType;
4040
use datafusion_physical_expr::expressions::{Column, NoOp};
4141
use datafusion_physical_expr::utils::map_columns_before_projection;
4242
use datafusion_physical_expr::{
@@ -1297,25 +1297,10 @@ pub fn ensure_distribution(
12971297
// Allow subset satisfaction when:
12981298
// 1. Current partition count >= threshold
12991299
// 2. Not a partitioned join since must use exact hash matching for joins
1300-
// 3. Not a grouping set aggregate (requires exact hash including __grouping_id)
13011300
let current_partitions = child.plan.output_partitioning().partition_count();
1302-
1303-
// Check if the hash partitioning requirement includes __grouping_id column.
1304-
// Grouping set aggregates (ROLLUP, CUBE, GROUPING SETS) require exact hash
1305-
// partitioning on all group columns including __grouping_id to ensure partial
1306-
// aggregates from different partitions are correctly combined.
1307-
let requires_grouping_id = matches!(&requirement, Distribution::HashPartitioned(exprs)
1308-
if exprs.iter().any(|expr| {
1309-
expr.as_any()
1310-
.downcast_ref::<Column>()
1311-
.is_some_and(|col| col.name() == Aggregate::INTERNAL_GROUPING_ID)
1312-
})
1313-
);
1314-
13151301
let allow_subset_satisfy_partitioning = current_partitions
13161302
>= subset_satisfaction_threshold
1317-
&& !is_partitioned_join
1318-
&& !requires_grouping_id;
1303+
&& !is_partitioned_join;
13191304

13201305
// When `repartition_file_scans` is set, attempt to increase
13211306
// parallelism at the source.

datafusion/sqllogictest/test_files/grouping_set_repartition.slt

Lines changed: 0 additions & 246 deletions
This file was deleted.

0 commit comments

Comments
 (0)