ClickHouse/dbms/tests/queries/0_stateless/00074_replicated_attach_race_condition_zookeeper.sql
2016-01-19 22:56:09 +03:00

43 lines
1.6 KiB
SQL

SET replication_alter_partitions_sync = 2;
DROP TABLE IF EXISTS test.attach_r1;
DROP TABLE IF EXISTS test.attach_r2;
CREATE TABLE test.attach_r1 (d Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/01/attach', 'r1', d, d, 8192);
INSERT INTO test.attach_r1 VALUES ('2014-01-01'), ('2014-02-01'), ('2014-03-01');
SELECT d FROM test.attach_r1 ORDER BY d;
ALTER TABLE test.attach_r1 DETACH PARTITION 201402;
SELECT '---';
SELECT d FROM test.attach_r1 ORDER BY d;
CREATE TABLE test.attach_r2 (d Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/01/attach', 'r2', d, d, 8192);
ALTER TABLE test.attach_r1 ATTACH PARTITION 201402;
SELECT '---';
SELECT d FROM test.attach_r1 ORDER BY d;
-- так как куски скачиваются параллельно, в произвольном порядке, то наличие кусков отличных от ATTACH-енного в данный момент не гарантируется
-- наличие ATTACH-енного куска гарантируется настройкой replication_alter_partitions_sync - проверим это
SELECT d FROM test.attach_r2 WHERE d = '2014-02-01' ORDER BY d;
ALTER TABLE test.attach_r1 DETACH PARTITION 201401;
ALTER TABLE test.attach_r1 DETACH PARTITION 201403;
SELECT '---';
SELECT d FROM test.attach_r1 ORDER BY d;
SELECT d FROM test.attach_r2 ORDER BY d;
ALTER TABLE test.attach_r1 ATTACH PARTITION 201401;
ALTER TABLE test.attach_r1 ATTACH PARTITION 201403;
SELECT '---';
SELECT d FROM test.attach_r1 ORDER BY d;
SELECT d FROM test.attach_r2 ORDER BY d;
DROP TABLE test.attach_r1;
DROP TABLE test.attach_r2;