mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 10:52:30 +00:00
41 lines
1.2 KiB
Django/Jinja
41 lines
1.2 KiB
Django/Jinja
-- Tags: long
|
|
|
|
DROP TABLE IF EXISTS left;
|
|
DROP TABLE IF EXISTS right;
|
|
|
|
SET join_algorithm = 'partial_merge';
|
|
|
|
{% for block_size in [10, 11, 128, 129, 65505, 65506, 70000] -%}
|
|
{% for join_block_size in range(block_size - 2, block_size + 2) -%}
|
|
|
|
DROP TABLE IF EXISTS left;
|
|
DROP TABLE IF EXISTS right;
|
|
|
|
CREATE TABLE left ( key UInt32, value String ) ENGINE = Memory;
|
|
CREATE TABLE right ( key UInt32, value String ) ENGINE = Memory;
|
|
|
|
INSERT INTO left SELECT number, toString(number) FROM numbers({{ block_size * 2 + 1 }});
|
|
INSERT INTO right SELECT number, toString(number) FROM numbers({{ block_size * 2 + 5 }});
|
|
|
|
SET max_joined_block_size_rows = {{ join_block_size }};
|
|
SET max_block_size = {{ block_size }};
|
|
|
|
SELECT key, count(1) AS cnt
|
|
FROM (
|
|
SELECT *
|
|
FROM ( SELECT key FROM left AS s ) AS data
|
|
ALL LEFT JOIN ( SELECT key FROM right GROUP BY key ) AS promo ON promo.key = data.key
|
|
) GROUP BY key HAVING count(1) > 1
|
|
;
|
|
|
|
SELECT count() == (SELECT count() from left) AND min(key == promo.key) == 1
|
|
FROM ( SELECT key FROM left AS s ) AS data
|
|
ALL LEFT JOIN ( SELECT key FROM right GROUP BY key ) AS promo ON promo.key = data.key
|
|
;
|
|
|
|
{% endfor -%}
|
|
{% endfor -%}
|
|
|
|
DROP TABLE IF EXISTS left;
|
|
DROP TABLE IF EXISTS right;
|