mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-19 16:20:50 +00:00
Fix 02967_parallel_replicas_joins_and_analyzer
This commit is contained in:
parent
7be90470d5
commit
44fecf66ca
@ -19,8 +19,20 @@ select x, y, r.y, z, rr.z, a from (select l.x, l.y, r.y, r.z as z from (select x
|
||||
14 14 14 14 0 0
|
||||
15 15 0 0 0 0
|
||||
explain description=0 select x, y, r.y, z, rr.z, a from (select l.x, l.y, r.y, r.z as z from (select x, y from tab1 where x != 2) l any left join (select y, z from tab2 where y != 4) r on l.y = r.y) ll any left join (select z, a from tab3 where z != 8) rr on ll.z = rr.z SETTINGS allow_experimental_parallel_reading_from_replicas = 2, max_parallel_replicas = 2, parallel_replicas_for_non_replicated_merge_tree = 1, prefer_localhost_replica = 1, cluster_for_parallel_replicas = 'test_cluster_one_shard_three_replicas_localhost', allow_experimental_analyzer=1;
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- The same query with cte;
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -55,8 +67,22 @@ select * from sub5 order by x
|
||||
SETTINGS allow_experimental_parallel_reading_from_replicas = 2, max_parallel_replicas = 2, parallel_replicas_for_non_replicated_merge_tree = 1, prefer_localhost_replica = 1, cluster_for_parallel_replicas = 'test_cluster_one_shard_three_replicas_localhost', allow_experimental_analyzer=1;
|
||||
Expression
|
||||
Sorting
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Sorting
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- GROUP BY should work up to WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -80,8 +106,22 @@ Expression
|
||||
Sorting
|
||||
Expression
|
||||
MergingAggregated
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Aggregating
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- ORDER BY in sub3 : sub1 is fully pushed, sub3 -> WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -118,10 +158,22 @@ Expression
|
||||
Sorting
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- ORDER BY in sub1 : sub1 -> WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2 order by y),
|
||||
@ -160,12 +212,24 @@ Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- RIGHT JOIN in sub3: sub3 -> WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -202,12 +266,24 @@ Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- RIGHT JOIN in sub5: sub5 -> WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -242,14 +318,26 @@ Expression
|
||||
Sorting
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- Subqueries for IN allowed
|
||||
with sub1 as (select x, y from tab1 where x in (select number from numbers(16) where number != 2)),
|
||||
@ -284,8 +372,28 @@ select * from sub5 order by x
|
||||
SETTINGS allow_experimental_parallel_reading_from_replicas = 2, max_parallel_replicas = 2, parallel_replicas_for_non_replicated_merge_tree = 1, prefer_localhost_replica = 1, cluster_for_parallel_replicas = 'test_cluster_one_shard_three_replicas_localhost', allow_experimental_analyzer=1;
|
||||
Expression
|
||||
Sorting
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Sorting
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
CreatingSets
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
CreatingSet
|
||||
Expression
|
||||
Filter
|
||||
ReadFromSystemNumbers
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromMemoryStorage
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- Subqueries for IN are not allowed
|
||||
with sub1 as (select x, y from tab1 where x in (select number from numbers(16) where number != 2)),
|
||||
@ -333,10 +441,18 @@ Expression
|
||||
Expression
|
||||
Filter
|
||||
ReadFromSystemNumbers
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
set parallel_replicas_prefer_local_join = 1;
|
||||
-- A query with only INNER/LEFT joins is fully send to replicas. JOIN is executed in GLOBAL mode.
|
||||
select x, y, r.y, z, rr.z, a from (select l.x, l.y, r.y, r.z as z from (select x, y from tab1 where x != 2) l any left join (select y, z from tab2 where y != 4) r on l.y = r.y) ll any left join (select z, a from tab3 where z != 8) rr on ll.z = rr.z order by x SETTINGS allow_experimental_parallel_reading_from_replicas = 2, max_parallel_replicas = 2, parallel_replicas_for_non_replicated_merge_tree = 1, prefer_localhost_replica = 1, cluster_for_parallel_replicas = 'test_cluster_one_shard_three_replicas_localhost', allow_experimental_analyzer=1;
|
||||
@ -356,8 +472,22 @@ select x, y, r.y, z, rr.z, a from (select l.x, l.y, r.y, r.z as z from (select x
|
||||
14 14 14 14 0 0
|
||||
15 15 0 0 0 0
|
||||
explain description=0 select x, y, r.y, z, rr.z, a from (select l.x, l.y, r.y, r.z as z from (select x, y from tab1 where x != 2) l any left join (select y, z from tab2 where y != 4) r on l.y = r.y) ll any left join (select z, a from tab3 where z != 8) rr on ll.z = rr.z SETTINGS allow_experimental_parallel_reading_from_replicas = 2, max_parallel_replicas = 2, parallel_replicas_for_non_replicated_merge_tree = 1, prefer_localhost_replica = 1, cluster_for_parallel_replicas = 'test_cluster_one_shard_three_replicas_localhost', allow_experimental_analyzer=1;
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- The same query with cte;
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -392,8 +522,24 @@ select * from sub5 order by x
|
||||
SETTINGS allow_experimental_parallel_reading_from_replicas = 2, max_parallel_replicas = 2, parallel_replicas_for_non_replicated_merge_tree = 1, prefer_localhost_replica = 1, cluster_for_parallel_replicas = 'test_cluster_one_shard_three_replicas_localhost', allow_experimental_analyzer=1;
|
||||
Expression
|
||||
Sorting
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Sorting
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- GROUP BY should work up to WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -417,8 +563,24 @@ Expression
|
||||
Sorting
|
||||
Expression
|
||||
MergingAggregated
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Aggregating
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- ORDER BY in sub3 : sub1 is fully pushed, sub3 -> WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -455,10 +617,23 @@ Expression
|
||||
Sorting
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- ORDER BY in sub1 : sub1 -> WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2 order by y),
|
||||
@ -497,12 +672,24 @@ Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- RIGHT JOIN in sub3: sub3 -> WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -539,12 +726,24 @@ Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- RIGHT JOIN in sub5: sub5 -> WithMergableStage
|
||||
with sub1 as (select x, y from tab1 where x != 2),
|
||||
@ -579,14 +778,26 @@ Expression
|
||||
Sorting
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- Subqueries for IN allowed
|
||||
with sub1 as (select x, y from tab1 where x in (select number from numbers(16) where number != 2)),
|
||||
@ -621,8 +832,30 @@ select * from sub5 order by x
|
||||
SETTINGS allow_experimental_parallel_reading_from_replicas = 2, max_parallel_replicas = 2, parallel_replicas_for_non_replicated_merge_tree = 1, prefer_localhost_replica = 1, cluster_for_parallel_replicas = 'test_cluster_one_shard_three_replicas_localhost', allow_experimental_analyzer=1;
|
||||
Expression
|
||||
Sorting
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Sorting
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
Join
|
||||
Expression
|
||||
CreatingSets
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
CreatingSet
|
||||
Expression
|
||||
Filter
|
||||
ReadFromSystemNumbers
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
--
|
||||
-- Subqueries for IN are not allowed
|
||||
with sub1 as (select x, y from tab1 where x in (select number from numbers(16) where number != 2)),
|
||||
@ -670,7 +903,15 @@ Expression
|
||||
Expression
|
||||
Filter
|
||||
ReadFromSystemNumbers
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Union
|
||||
Expression
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
ReadFromMergeTree
|
||||
Expression
|
||||
ReadFromRemoteParallelReplicas
|
||||
|
Loading…
Reference in New Issue
Block a user