From 96ba00d1754183daadf29fe5cbf35b5d3f23605c Mon Sep 17 00:00:00 2001 From: evenyag Date: Tue, 8 Apr 2025 20:36:48 +0800 Subject: [PATCH] feat: keep parallelize_scan unchanged --- src/query/src/optimizer/parallelize_scan.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/query/src/optimizer/parallelize_scan.rs b/src/query/src/optimizer/parallelize_scan.rs index eb712ec920..b6d22f7de5 100644 --- a/src/query/src/optimizer/parallelize_scan.rs +++ b/src/query/src/optimizer/parallelize_scan.rs @@ -23,6 +23,7 @@ use datafusion::physical_plan::ExecutionPlan; use datafusion_common::tree_node::{Transformed, TreeNode}; use datafusion_common::{DataFusionError, Result}; use store_api::region_engine::PartitionRange; +use store_api::storage::TimeSeriesDistribution; use table::table::scan::RegionScanExec; #[derive(Debug)] @@ -65,6 +66,14 @@ impl ParallelizeScan { return Ok(Transformed::no(plan)); } + // don't parallelize if we want per series distribution + if matches!( + region_scan_exec.distribution(), + Some(TimeSeriesDistribution::PerSeries) + ) { + return Ok(Transformed::no(plan)); + } + let ranges = region_scan_exec.get_partition_ranges(); let total_range_num = ranges.len(); let expected_partition_num = config.execution.target_partitions;