mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-19 14:11:58 +00:00
wip grace hash
This commit is contained in:
parent
bf3f66b5b6
commit
424971d9ae
@ -475,7 +475,9 @@ std::unique_ptr<QueryPipelineBuilder> QueryPipelineBuilder::joinPipelinesRightLe
|
||||
}
|
||||
|
||||
|
||||
const Block left_header = left->getHeader();
|
||||
Block left_header = left->getHeader();
|
||||
Block joined_header = JoiningTransform::transformHeader(left_header, join);
|
||||
|
||||
for (size_t i = 0; i < num_streams; ++i)
|
||||
{
|
||||
auto joining = std::make_shared<JoiningTransform>(
|
||||
@ -486,7 +488,7 @@ std::unique_ptr<QueryPipelineBuilder> QueryPipelineBuilder::joinPipelinesRightLe
|
||||
if (delayed_root)
|
||||
{
|
||||
// Process delayed joined blocks when all JoiningTransform are finished.
|
||||
auto delayed = std::make_shared<DelayedJoinedBlocksWorkerTransform>(left_header);
|
||||
auto delayed = std::make_shared<DelayedJoinedBlocksWorkerTransform>(joined_header);
|
||||
if (delayed->getInputs().size() != 1 || delayed->getOutputs().size() != 1)
|
||||
throw Exception("DelayedJoinedBlocksWorkerTransform should have one input and one output", ErrorCodes::LOGICAL_ERROR);
|
||||
|
||||
@ -516,7 +518,6 @@ std::unique_ptr<QueryPipelineBuilder> QueryPipelineBuilder::joinPipelinesRightLe
|
||||
if (delayed_root)
|
||||
{
|
||||
// Process DelayedJoinedBlocksTransform after all JoiningTransforms.
|
||||
auto joined_header = JoiningTransform::transformHeader(left_header, join);
|
||||
DelayedPortsProcessor::PortNumbers delayed_ports_numbers;
|
||||
delayed_ports_numbers.reserve(joined_output_ports.size() / 2);
|
||||
for (size_t i = 1; i < joined_output_ports.size(); i += 2)
|
||||
|
@ -1,3 +1,52 @@
|
||||
-- full_sorting_merge --
|
||||
ALL INNER
|
||||
500353531835 500353531835 1000342 1000342 1000342
|
||||
ALL LEFT
|
||||
50195752660639 500353531835 10369589 10369589 1000342
|
||||
ALL RIGHT
|
||||
500353531835 684008812186 1367170 1000342 1367170
|
||||
ALL INNER
|
||||
500353531835 500353531835 1000342 1000342 1000342
|
||||
ALL LEFT
|
||||
50195752660639 500353531835 10369589 10369589 1000342
|
||||
ALL RIGHT
|
||||
500353531835 684008812186 1367170 1000342 1367170
|
||||
ALL INNER
|
||||
500353531835 500353531835 1000342 1000342 1000342
|
||||
ALL LEFT
|
||||
50195752660639 500353531835 10369589 10369589 1000342
|
||||
ALL RIGHT
|
||||
500353531835 684008812186 1367170 1000342 1367170
|
||||
ALL INNER
|
||||
500353531835 500353531835 1000342 1000342 1000342
|
||||
ALL LEFT
|
||||
50195752660639 500353531835 10369589 10369589 1000342
|
||||
ALL RIGHT
|
||||
500353531835 684008812186 1367170 1000342 1367170
|
||||
ANY INNER
|
||||
199622811843 199622811843 399458 399458 399458
|
||||
ANY LEFT
|
||||
50010619420459 315220291655 10000000 10000000 630753
|
||||
ANY RIGHT
|
||||
316611844056 500267124407 1000000 633172 1000000
|
||||
ANY INNER
|
||||
199622811843 199622811843 399458 399458 399458
|
||||
ANY LEFT
|
||||
50010619420459 315220291655 10000000 10000000 630753
|
||||
ANY RIGHT
|
||||
316611844056 500267124407 1000000 633172 1000000
|
||||
ANY INNER
|
||||
199622811843 199622811843 399458 399458 399458
|
||||
ANY LEFT
|
||||
50010619420459 315220291655 10000000 10000000 630753
|
||||
ANY RIGHT
|
||||
316611844056 500267124407 1000000 633172 1000000
|
||||
ANY INNER
|
||||
199622811843 199622811843 399458 399458 399458
|
||||
ANY LEFT
|
||||
50010619420459 315220291655 10000000 10000000 630753
|
||||
ANY RIGHT
|
||||
316611844056 500267124407 1000000 633172 1000000
|
||||
-- grace_hash --
|
||||
ALL INNER
|
||||
500353531835 500353531835 1000342 1000342 1000342
|
||||
|
@ -29,7 +29,7 @@ SELECT 'skipped';
|
||||
{% endif -%}
|
||||
{% endmacro -%}
|
||||
|
||||
{% for join_algorithm in ['grace_hash'] -%}
|
||||
{% for join_algorithm in ['full_sorting_merge', 'grace_hash'] -%}
|
||||
|
||||
SET max_bytes_in_join = '{% if join_algorithm == 'grace_hash' %}1M{% else %}0{% endif %}';
|
||||
|
||||
@ -37,11 +37,9 @@ SELECT '-- {{ join_algorithm }} --';
|
||||
SET join_algorithm = '{{ join_algorithm }}';
|
||||
|
||||
{% for kind in ['ALL', 'ANY'] -%}
|
||||
{% for block_size in [0, 32001, 65505, 65536] %}
|
||||
{% for block_size in [10240, 32001, 65505, 65536] %}
|
||||
|
||||
{% if block_size -%}
|
||||
SET max_block_size = {{ block_size }};
|
||||
{%- endif %}
|
||||
|
||||
{% if not (kind == 'ANY' and join_algorithm == 'grace_hash') -%}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user