mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 03:22:14 +00:00
50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
import pytest
|
|
|
|
from helpers.cluster import ClickHouseCluster
|
|
|
|
cluster = ClickHouseCluster(__file__)
|
|
|
|
node = cluster.add_instance("node")
|
|
|
|
|
|
@pytest.fixture(scope="module", autouse=True)
|
|
def start_cluster():
|
|
try:
|
|
cluster.start()
|
|
yield cluster
|
|
finally:
|
|
cluster.shutdown()
|
|
|
|
|
|
def test_memory_limit_success():
|
|
if node.is_built_with_thread_sanitizer():
|
|
pytest.skip(
|
|
"tsan build is skipped because it slowly merges the parts, "
|
|
"rather than failing over the memory limit"
|
|
)
|
|
|
|
node.query(
|
|
"CREATE TABLE test_merge_oom ENGINE=AggregatingMergeTree ORDER BY id EMPTY AS SELECT number%1024 AS id, arrayReduce('groupArrayState', arrayMap(x-> randomPrintableASCII(100), range(8192))) fat_state FROM numbers(20000)"
|
|
)
|
|
node.query("SYSTEM STOP MERGES test_merge_oom")
|
|
node.query(
|
|
"INSERT INTO test_merge_oom SELECT number%1024 AS id, arrayReduce('groupArrayState', arrayMap( x-> randomPrintableASCII(100), range(8192))) fat_state FROM numbers(3000)"
|
|
)
|
|
node.query(
|
|
"INSERT INTO test_merge_oom SELECT number%1024 AS id, arrayReduce('groupArrayState', arrayMap( x-> randomPrintableASCII(100), range(8192))) fat_state FROM numbers(3000)"
|
|
)
|
|
node.query(
|
|
"INSERT INTO test_merge_oom SELECT number%1024 AS id, arrayReduce('groupArrayState', arrayMap( x-> randomPrintableASCII(100), range(8192))) fat_state FROM numbers(3000)"
|
|
)
|
|
|
|
_, error = node.query_and_get_answer_with_error(
|
|
"""
|
|
SET optimize_throw_if_noop=1;
|
|
SYSTEM START MERGES test_merge_oom;
|
|
OPTIMIZE TABLE test_merge_oom FINAL;
|
|
"""
|
|
)
|
|
|
|
assert not error
|
|
node.query("DROP TABLE test_merge_oom")
|