File tree Expand file tree Collapse file tree 3 files changed +78
-7
lines changed
tests/queries/0_stateless Expand file tree Collapse file tree 3 files changed +78
-7
lines changed Original file line number Diff line number Diff line change @@ -8,11 +8,10 @@ ExpressionTransform × 10
88 (ReadFromPreparedSource)
99 SourceFromSingleChunk 0 → 1
1010(Expression)
11- ExpressionTransform × 10
11+ ExpressionTransform
1212 (MergingAggregated)
13- Resize 1 → 10
14- MergingAggregatedTransform
15- (Expression)
16- ExpressionTransform
17- (ReadFromPreparedSource)
18- SourceFromSingleChunk 0 → 1
13+ MergingAggregatedTransform
14+ (Expression)
15+ ExpressionTransform
16+ (ReadFromPreparedSource)
17+ SourceFromSingleChunk 0 → 1
Original file line number Diff line number Diff line change 1+ -- { echo On }
2+ -- We should use just a single thread to merge the state of trivial count
3+ EXPLAIN PIPELINE SELECT count() FROM trivial_count;
4+ (Expression)
5+ ExpressionTransform
6+ (MergingAggregated)
7+ MergingAggregatedTransform
8+ (Expression)
9+ ExpressionTransform
10+ (ReadFromPreparedSource)
11+ SourceFromSingleChunk 0 → 1
12+ -- But not if we are filtering or doing other operations (no trivial count)
13+ EXPLAIN PIPELINE SELECT count() FROM trivial_count WHERE number % 3 = 2;
14+ (Expression)
15+ ExpressionTransform × 4
16+ (Aggregating)
17+ Resize 1 → 4
18+ AggregatingTransform
19+ (Expression)
20+ ExpressionTransform
21+ (Filter)
22+ FilterTransform
23+ (ReadFromMergeTree)
24+ MergeTreeSelect(pool: ReadPoolInOrder, algorithm: InOrder) 0 → 1
25+ EXPLAIN PIPELINE SELECT count() FROM trivial_count GROUP BY number % 10;
26+ (Expression)
27+ ExpressionTransform × 4
28+ (Aggregating)
29+ Resize 1 → 4
30+ AggregatingTransform
31+ (Expression)
32+ ExpressionTransform
33+ (ReadFromMergeTree)
34+ MergeTreeSelect(pool: ReadPoolInOrder, algorithm: InOrder) 0 → 1
35+ -- Other aggregations should still use as many threads as necessary
36+ EXPLAIN PIPELINE SELECT sum(number) FROM trivial_count;
37+ (Expression)
38+ ExpressionTransform × 4
39+ (Aggregating)
40+ Resize 1 → 4
41+ AggregatingTransform
42+ (Expression)
43+ ExpressionTransform
44+ (ReadFromMergeTree)
45+ MergeTreeSelect(pool: ReadPoolInOrder, algorithm: InOrder) 0 → 1
46+ EXPLAIN PIPELINE SELECT count(), sum(number) FROM trivial_count;
47+ (Expression)
48+ ExpressionTransform × 4
49+ (Aggregating)
50+ Resize 1 → 4
51+ AggregatingTransform
52+ (Expression)
53+ ExpressionTransform
54+ (ReadFromMergeTree)
55+ MergeTreeSelect(pool: ReadPoolInOrder, algorithm: InOrder) 0 → 1
Original file line number Diff line number Diff line change 1+ SET enable_analyzer = 1 ;
2+ SET max_threads= 4 ;
3+
4+ DROP TABLE IF EXISTS trivial_count;
5+ CREATE TABLE trivial_count ORDER BY number AS Select * from numbers(10 );
6+
7+ -- { echo On }
8+ -- We should use just a single thread to merge the state of trivial count
9+ EXPLAIN PIPELINE SELECT count () FROM trivial_count;
10+
11+ -- But not if we are filtering or doing other operations (no trivial count)
12+ EXPLAIN PIPELINE SELECT count () FROM trivial_count WHERE number % 3 = 2 ;
13+ EXPLAIN PIPELINE SELECT count () FROM trivial_count GROUP BY number % 10 ;
14+
15+ -- Other aggregations should still use as many threads as necessary
16+ EXPLAIN PIPELINE SELECT sum (number ) FROM trivial_count;
17+ EXPLAIN PIPELINE SELECT count (), sum (number ) FROM trivial_count;
You can’t perform that action at this time.
0 commit comments