Skip to content

Commit 9515555

Browse files
committed
Add and adjust tests
1 parent f397ffd commit 9515555

File tree

3 files changed

+78
-7
lines changed

3 files changed

+78
-7
lines changed

tests/queries/0_stateless/00172_early_constant_folding.reference

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff 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
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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;

0 commit comments

Comments
 (0)