mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 03:22:14 +00:00
17b27b6c28
Otherwise the following query will be optimized incorrectly: SELECT *, any(arrayJoin([[], []])) FROM numbers(1) GROUP BY number And the result will be: ┌─number─┬─arrayJoin(array(array(), array()))─┐ │ 0 │ [] │ │ 0 │ [] │ └────────┴────────────────────────────────────┘ While should be: ┌─number─┬─any(arrayJoin(array(array(), array())))─┐ │ 0 │ [] │ └────────┴─────────────────────────────────────────┘
36 lines
1.3 KiB
SQL
36 lines
1.3 KiB
SQL
SET enable_debug_queries = 1;
|
|
SET optimize_move_functions_out_of_any = 1;
|
|
|
|
ANALYZE SELECT any(number + number * 2) FROM numbers(1, 2);
|
|
SELECT any(number + number * 2) FROM numbers(1, 2);
|
|
|
|
ANALYZE SELECT anyLast(number + number * 2) FROM numbers(1, 2);
|
|
SELECT anyLast(number + number * 2) FROM numbers(1, 2);
|
|
|
|
ANALYZE WITH any(number * 3) AS x SELECT x FROM numbers(1, 2);
|
|
WITH any(number * 3) AS x SELECT x FROM numbers(1, 2);
|
|
|
|
ANALYZE SELECT anyLast(number * 3) AS x, x FROM numbers(1, 2);
|
|
SELECT anyLast(number * 3) AS x, x FROM numbers(1, 2);
|
|
|
|
SELECT any(anyLast(number)) FROM numbers(1); -- { serverError 184 }
|
|
|
|
SET optimize_move_functions_out_of_any = 0;
|
|
|
|
ANALYZE SELECT any(number + number * 2) FROM numbers(1, 2);
|
|
SELECT any(number + number * 2) FROM numbers(1, 2);
|
|
|
|
ANALYZE SELECT anyLast(number + number * 2) FROM numbers(1, 2);
|
|
SELECT anyLast(number + number * 2) FROM numbers(1, 2);
|
|
|
|
ANALYZE WITH any(number * 3) AS x SELECT x FROM numbers(1, 2);
|
|
WITH any(number * 3) AS x SELECT x FROM numbers(1, 2);
|
|
|
|
ANALYZE SELECT anyLast(number * 3) AS x, x FROM numbers(1, 2);
|
|
SELECT anyLast(number * 3) AS x, x FROM numbers(1, 2);
|
|
|
|
SELECT any(anyLast(number)) FROM numbers(1); -- { serverError 184 }
|
|
|
|
SELECT 'arrayJoin';
|
|
SELECT *, any(arrayJoin([[], []])) FROM numbers(1) GROUP BY number;
|