mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-12 01:12:12 +00:00
52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
|
"""
|
||
|
This test is similar to test_cross_replication, except
|
||
|
in this test we write into per-node tables and read from the distributed table.
|
||
|
|
||
|
The default database in the distributed table definition is left empty on purpose to test
|
||
|
default database deduction.
|
||
|
"""
|
||
|
import pytest
|
||
|
|
||
|
from helpers.client import QueryRuntimeException
|
||
|
from helpers.cluster import ClickHouseCluster
|
||
|
from helpers.test_tools import TSV
|
||
|
|
||
|
from contextlib import contextmanager
|
||
|
|
||
|
|
||
|
def bootstrap(cluster):
|
||
|
for i, node in enumerate(list(cluster.instances.values())):
|
||
|
node.query(f"CREATE DATABASE IF NOT EXISTS r{i}")
|
||
|
node.query(f"CREATE TABLE r{i}.test_data(v UInt64) ENGINE = Memory()")
|
||
|
node.query(f"INSERT INTO r{i}.test_data SELECT * FROM numbers(10)")
|
||
|
node.query(
|
||
|
f"""CREATE TABLE default.test AS r{i}.test_data ENGINE = Distributed(secure, '', test_data, rand())"""
|
||
|
)
|
||
|
|
||
|
|
||
|
@contextmanager
|
||
|
def start_cluster():
|
||
|
cluster_disabled = ClickHouseCluster(__file__)
|
||
|
cluster_disabled.add_instance(
|
||
|
"node1",
|
||
|
main_configs=["configs/remote_servers.xml"],
|
||
|
user_configs=["configs/users.xml"],
|
||
|
)
|
||
|
cluster_disabled.add_instance(
|
||
|
"node2",
|
||
|
main_configs=["configs/remote_servers.xml"],
|
||
|
user_configs=["configs/users.xml"],
|
||
|
)
|
||
|
try:
|
||
|
cluster_disabled.start()
|
||
|
bootstrap(cluster_disabled)
|
||
|
yield cluster_disabled
|
||
|
finally:
|
||
|
cluster_disabled.shutdown()
|
||
|
|
||
|
|
||
|
def test_query():
|
||
|
with start_cluster() as cluster:
|
||
|
node1 = cluster.instances["node1"]
|
||
|
assert TSV(node1.query("SELECT count() FROM default.test")) == TSV("20")
|