ClickHouse/tests/queries/0_stateless/02241_join_rocksdb_bs.sql.j2
2022-07-04 17:28:15 +00:00

45 lines
1.3 KiB
Django/Jinja

-- Tags: use-rocksdb, long
SET join_algorithm = 'direct';
{% for table_size in [10, 65555, 100000] -%}
DROP TABLE IF EXISTS rdb_{{ table_size }};
{% endfor -%}
{% for table_size in [10, 65555, 100000] -%}
CREATE TABLE rdb_{{ table_size }} (key UInt64, value String) ENGINE = EmbeddedRocksDB PRIMARY KEY (key);
INSERT INTO rdb_{{ table_size }}
SELECT (sipHash64(number) % {{ table_size }}) as key, ('val' || toString(key)) AS value
FROM numbers_mt({{ table_size }});
{% for block_size in [10, 11, 128, 129, 65505, 65506, 70000] -%}
{% if block_size * 5000 > table_size -%}
SET max_block_size = {{ block_size }};
{% for right_size in [table_size // 2, table_size + table_size // 4 + 1] -%}
SELECT count() == (SELECT count() FROM rdb_{{ table_size }} WHERE key < {{ right_size }})
FROM (SELECT number as k FROM numbers_mt({{ right_size }})) as t1
INNER JOIN rdb_{{ table_size }} as rdb
ON rdb.key == t1.k;
SELECT count() == {{ right_size }} and countIf(value != '') == (SELECT count() FROM rdb_{{ table_size }} WHERE key < {{ right_size }})
FROM (SELECT number as k FROM numbers_mt({{ right_size }})) as t1
LEFT JOIN rdb_{{ table_size }} as rdb
ON rdb.key == t1.k;
{% endfor -%}
{% endif -%}
{% endfor -%}
{% endfor -%}
{% for table_size in [10, 65555, 100000] -%}
DROP TABLE IF EXISTS rdb_{{ table_size }};
{% endfor -%}