ClickHouse/tests/queries/0_stateless/01655_plan_optimizations.reference

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

154 lines
2.9 KiB
Plaintext
Raw Normal View History

Too many optimizations applied to query plan
Too many optimizations applied to query plan
2021-02-12 11:31:14 +00:00
> sipHash should be calculated after filtration
2021-01-19 13:35:26 +00:00
FUNCTION sipHash64
Filter column: equals
2021-02-12 11:31:14 +00:00
> sorting steps should know about limit
2021-01-19 13:35:26 +00:00
Limit 10
2021-10-19 08:11:54 +00:00
Sorting
Sorting
2021-01-19 13:35:26 +00:00
Limit 10
2021-02-12 11:31:14 +00:00
-- filter push down --
> filter should be pushed down after aggregating
Aggregating
Filter
2021-02-17 16:54:37 +00:00
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
2021-02-12 11:31:14 +00:00
> filter should be pushed down after aggregating, column after aggregation is const
COLUMN Const(UInt8) -> notEquals(y, 0)
Aggregating
Filter
Filter
2021-02-17 16:54:37 +00:00
0 1 1
1 2 1
2 3 1
3 4 1
4 5 1
5 6 1
6 7 1
7 8 1
8 9 1
9 10 1
2021-02-12 11:31:14 +00:00
> one condition of filter should be pushed down after aggregating, other condition is aliased
Filter column
ALIAS notEquals(s, 4) :: 1 -> and(notEquals(y, 0), notEquals(s, 4))
Aggregating
Filter column: notEquals(y, 0)
2021-02-17 16:54:37 +00:00
0 1
1 2
2 3
3 4
5 6
6 7
7 8
8 9
9 10
2021-02-12 11:31:14 +00:00
> one condition of filter should be pushed down after aggregating, other condition is casted
Filter column
2021-08-07 11:31:53 +00:00
FUNCTION _CAST(minus(s, 4) :: 1, UInt8 :: 3) -> and(notEquals(y, 0), minus(s, 4))
2021-02-12 11:31:14 +00:00
Aggregating
Filter column: notEquals(y, 0)
2021-02-17 16:54:37 +00:00
0 1
1 2
2 3
3 4
5 6
6 7
7 8
8 9
9 10
2021-02-12 11:31:14 +00:00
> one condition of filter should be pushed down after aggregating, other two conditions are ANDed
Filter column
2021-02-20 17:42:06 +00:00
FUNCTION and(minus(s, 8) :: 1, minus(s, 4) :: 2) -> and(notEquals(y, 0), minus(s, 8), minus(s, 4))
2021-02-12 11:31:14 +00:00
Aggregating
Filter column: notEquals(y, 0)
2021-02-17 16:54:37 +00:00
0 1
1 2
2 3
3 4
5 6
6 7
7 8
9 10
2021-02-12 11:31:14 +00:00
> two conditions of filter should be pushed down after aggregating and ANDed, one condition is aliased
Filter column
ALIAS notEquals(s, 8) :: 1 -> and(notEquals(y, 0), notEquals(s, 8), minus(y, 4))
Aggregating
2021-02-20 17:42:06 +00:00
Filter column: and(notEquals(y, 0), minus(y, 4))
2021-02-17 16:54:37 +00:00
0 1
1 2
2 3
4 5
5 6
6 7
7 8
9 10
2021-02-12 16:06:18 +00:00
> filter is split, one part is filtered before ARRAY JOIN
Filter column: and(notEquals(y, 2), notEquals(x, 0))
ARRAY JOIN x
Filter column: notEquals(y, 2)
2021-02-17 16:54:37 +00:00
1 3
> filter is pushed down before Distinct
Distinct
Distinct
Filter column: notEquals(y, 2)
0 0
0 1
1 0
1 1
> filter is pushed down before sorting steps
2021-10-19 08:11:54 +00:00
Sorting
Sorting
2021-02-17 16:54:37 +00:00
Filter column: and(notEquals(x, 0), notEquals(y, 0))
1 2
1 1
2021-02-18 13:13:09 +00:00
> filter is pushed down before TOTALS HAVING and aggregating
TotalsHaving
Aggregating
Filter column: notEquals(y, 2)
0 12
1 15
3 10
0 37
> filter is pushed down before CreatingSets
CreatingSets
Filter
Filter
1
3
> one condition of filter is pushed down before LEFT JOIN
Join
Filter column: notEquals(number, 1)
Join
0 0
3 3
> one condition of filter is pushed down before INNER JOIN
Join
Filter column: notEquals(number, 1)
Join
3 3
> filter is pushed down before UNION
Union
Filter
Filter
2 3
2 3
2022-03-25 15:18:24 +00:00
> function calculation should be done after sorting and limit (if possible)
2022-03-25 16:20:29 +00:00
> Expression should be divided into two subexpressions and only one of them should be moved after Sorting
2022-04-25 18:23:24 +00:00
Expression ((Projection + Before ORDER BY [lifted up part]))
2022-03-29 19:16:05 +00:00
FUNCTION sipHash64
2022-03-25 15:18:24 +00:00
Sorting
2022-03-29 19:16:05 +00:00
Expression (Before ORDER BY)
FUNCTION plus
2022-03-29 10:55:48 +00:00
> this query should be executed without throwing an exception
0