import pytest from helpers.cluster import ClickHouseCluster cluster = ClickHouseCluster(__file__) node = cluster.add_instance('node', with_zookeeper=True) @pytest.fixture(scope='module', autouse=True) def started_cluster(): try: cluster.start() yield cluster finally: cluster.shutdown() def test_replicated_engine_parse_metadata_on_attach(): node.query( ''' CREATE TABLE data ( key Int, INDEX key_idx0 key+0 TYPE minmax GRANULARITY 1, INDEX key_idx1 key+1 TYPE minmax GRANULARITY 1 ) ENGINE = ReplicatedMergeTree('/ch/tables/default/data', 'node') ORDER BY key; ''') node.query('DETACH TABLE data') zk = cluster.get_kazoo_client('zoo1') # Add **extra space between indices**, to check that it will be re-parsed # and successfully accepted by the server. # # This metadata was obtain from the server without #11325 zk.set('/ch/tables/default/data/replicas/node/metadata', b""" metadata format version: 1 date column: sampling expression: index granularity: 8192 mode: 0 sign column: primary key: key data format version: 1 partition key: indices: key_idx0 key + 0 TYPE minmax GRANULARITY 1, key_idx1 key + 1 TYPE minmax GRANULARITY 1 granularity bytes: 10485760 """.lstrip()) node.query('ATTACH TABLE data')