ClickHouse/tests/integration/test_zero_copy_unfreeze/test.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

59 lines
1.7 KiB
Python
Raw Normal View History

from collections.abc import Iterable
import pytest
from helpers.cluster import ClickHouseCluster, ClickHouseInstance
cluster = ClickHouseCluster(__file__)
@pytest.fixture(scope="module")
def started_cluster() -> Iterable[ClickHouseCluster]:
try:
cluster.add_instance(
"node1",
main_configs=["configs/storage_conf.xml"],
with_minio=True,
with_zookeeper=True,
)
cluster.start()
yield cluster
finally:
cluster.shutdown()
@pytest.mark.parametrize("storage_policy", ["s3", "encrypted"])
def test_unfreeze(storage_policy: str, started_cluster: ClickHouseCluster) -> None:
node1: ClickHouseInstance = started_cluster.instances["node1"]
node1.query(
f"""\
CREATE TABLE test1 (a Int)
2024-09-11 14:02:36 +00:00
ENGINE = ReplicatedMergeTree('/clickhouse-tables/test1', 'r1')
ORDER BY a
SETTINGS storage_policy = '{storage_policy}'
"""
)
node1.query(
"""\
INSERT INTO test1
SELECT *
FROM system.numbers
LIMIT 20
"""
)
node1.query("ALTER TABLE test1 FREEZE WITH NAME 'test'")
node1.query("SYSTEM UNFREEZE WITH NAME 'test'")
uuid = node1.query("SELECT uuid FROM system.tables WHERE name = 'test1'").strip()
# ensure that zero copy lock parent still exists
kazoo = started_cluster.get_kazoo_client("zoo1")
part_path = f"/clickhouse/zero_copy/zero_copy_s3/{uuid}/all_0_0_0/"
children: list[str] = kazoo.get_children(part_path)
assert len(children) == 1
part_name = children[0]
assert len(kazoo.get_children(part_path + part_name)) == 1
assert node1.query("SELECT count() FROM test1").strip() == "20"
node1.query("DROP TABLE test1")
2024-09-11 14:02:36 +00:00
node1.query("SYSTEM DROP REPLICA 'r1' FROM ZKPATH '/clickhouse-tables/test1'")