mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 17:12:03 +00:00
59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
# pylint: disable=unused-argument
|
|
# pylint: disable=redefined-outer-name
|
|
|
|
import time
|
|
|
|
import pytest
|
|
|
|
from helpers.cluster import ClickHouseCluster
|
|
|
|
cluster = ClickHouseCluster(__file__)
|
|
|
|
node = cluster.add_instance(
|
|
"node",
|
|
stay_alive=True,
|
|
)
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def start_cluster():
|
|
try:
|
|
cluster.start()
|
|
yield cluster
|
|
finally:
|
|
cluster.shutdown()
|
|
|
|
|
|
def test_tmp_data_no_leftovers(start_cluster):
|
|
q = node.get_query_request
|
|
|
|
settings = {
|
|
"max_bytes_before_external_group_by": "10K",
|
|
"max_bytes_before_external_sort": "10K",
|
|
"join_algorithm": "grace_hash",
|
|
"max_bytes_in_join": "10K",
|
|
"grace_hash_join_initial_buckets": "16",
|
|
}
|
|
|
|
# Run some queries in the background to generate temporary data
|
|
q(
|
|
"SELECT ignore(*) FROM numbers(10 * 1024 * 1024) ORDER BY sipHash64(number)",
|
|
settings=settings,
|
|
)
|
|
q("SELECT * FROM system.numbers GROUP BY ALL", settings=settings)
|
|
q(
|
|
"SELECT * FROM system.numbers as t1 JOIN system.numbers as t2 USING (number)",
|
|
settings=settings,
|
|
)
|
|
|
|
# Wait a bit to make sure the temporary data is written to disk
|
|
time.sleep(5)
|
|
|
|
# Hard restart the node
|
|
node.restart_clickhouse(kill=True)
|
|
path_to_data = "/var/lib/clickhouse/"
|
|
|
|
# Check that there are no temporary files left
|
|
result = node.exec_in_container(["ls", path_to_data + "tmp/"])
|
|
assert result == ""
|