Addition to previous commit. Fix error code, rename test tables. [#CLICKHOUSE-2]

This commit is contained in:
Vitaliy Lyudvichenko 2017-06-26 17:35:26 +03:00
parent 49cbc33a6b
commit 9c0da6e698
3 changed files with 46 additions and 46 deletions

View File

@ -2847,7 +2847,7 @@ AbandonableLockInZooKeeper StorageReplicatedMergeTree::allocateBlockNumber(const
if (!existsNodeCached(month_path))
{
int code = zookeeper->tryCreate(month_path, "", zkutil::CreateMode::Persistent);
if (code != ZOK && code != ZNONODE)
if (code != ZOK && code != ZNODEEXISTS)
throw zkutil::KeeperException(code, month_path);
}

View File

@ -1,53 +1,53 @@
DROP TABLE IF EXISTS test.drop_column;
CREATE TABLE test.drop_column (d Date, num Int64, str String) ENGINE = MergeTree(d, d, 8192);
DROP TABLE IF EXISTS test.clear_column;
CREATE TABLE test.clear_column (d Date, num Int64, str String) ENGINE = MergeTree(d, d, 8192);
INSERT INTO test.drop_column VALUES ('2016-12-12', 1, 'a'), ('2016-11-12', 2, 'b');
INSERT INTO test.clear_column VALUES ('2016-12-12', 1, 'a'), ('2016-11-12', 2, 'b');
SELECT num, str FROM test.drop_column ORDER BY num;
ALTER TABLE test.drop_column CLEAR COLUMN num IN PARTITION '201612';
SELECT num, str FROM test.drop_column ORDER BY num;
SELECT num, str FROM test.clear_column ORDER BY num;
ALTER TABLE test.clear_column CLEAR COLUMN num IN PARTITION '201612';
SELECT num, str FROM test.clear_column ORDER BY num;
DROP TABLE test.drop_column;
DROP TABLE test.clear_column;
-- Replicated case
DROP TABLE IF EXISTS test.drop_column1;
DROP TABLE IF EXISTS test.drop_column2;
CREATE TABLE test.drop_column1 (d Date, i Int64, s String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/drop_column', '1', d, d, 8192);
CREATE TABLE test.drop_column2 (d Date, i Int64, s String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/drop_column', '2', d, d, 8192);
DROP TABLE IF EXISTS test.clear_column1;
DROP TABLE IF EXISTS test.clear_column2;
CREATE TABLE test.clear_column1 (d Date, i Int64, s String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/clear_column', '1', d, d, 8192);
CREATE TABLE test.clear_column2 (d Date, i Int64, s String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/clear_column', '2', d, d, 8192);
INSERT INTO test.drop_column1 VALUES ('2000-01-01', 1, 'a'), ('2000-02-01', 2, 'b');
INSERT INTO test.drop_column1 VALUES ('2000-01-01', 3, 'c'), ('2000-02-01', 4, 'd');
INSERT INTO test.clear_column1 VALUES ('2000-01-01', 1, 'a'), ('2000-02-01', 2, 'b');
INSERT INTO test.clear_column1 VALUES ('2000-01-01', 3, 'c'), ('2000-02-01', 4, 'd');
SELECT 'all';
SELECT * FROM test.drop_column1 ORDER BY d, i, s;
SELECT * FROM test.clear_column1 ORDER BY d, i, s;
SET replication_alter_partitions_sync=2;
SELECT 'w/o i 1';
ALTER TABLE test.drop_column1 CLEAR COLUMN i IN PARTITION '200001';
SELECT * FROM test.drop_column2 ORDER BY d, i, s;
ALTER TABLE test.clear_column1 CLEAR COLUMN i IN PARTITION '200001';
SELECT * FROM test.clear_column2 ORDER BY d, i, s;
SELECT 'w/o is 1';
ALTER TABLE test.drop_column1 CLEAR COLUMN s IN PARTITION '200001';
SELECT * FROM test.drop_column2 ORDER BY d, i, s;
ALTER TABLE test.clear_column1 CLEAR COLUMN s IN PARTITION '200001';
SELECT * FROM test.clear_column2 ORDER BY d, i, s;
SELECT 'w/o is 12';
ALTER TABLE test.drop_column1 CLEAR COLUMN i IN PARTITION '200002';
ALTER TABLE test.drop_column1 CLEAR COLUMN s IN PARTITION '200002';
SELECT DISTINCT * FROM test.drop_column2 ORDER BY d, i, s;
SELECT DISTINCT * FROM test.drop_column2 ORDER BY d, i, s;
ALTER TABLE test.clear_column1 CLEAR COLUMN i IN PARTITION '200002';
ALTER TABLE test.clear_column1 CLEAR COLUMN s IN PARTITION '200002';
SELECT DISTINCT * FROM test.clear_column2 ORDER BY d, i, s;
SELECT DISTINCT * FROM test.clear_column2 ORDER BY d, i, s;
SELECT 'sizes';
SELECT sum(data_uncompressed_bytes) FROM system.columns WHERE database='test' AND table LIKE 'drop_column_' AND (name = 'i' OR name = 's') GROUP BY table;
SELECT sum(data_uncompressed_bytes) FROM system.columns WHERE database='test' AND table LIKE 'clear_column_' AND (name = 'i' OR name = 's') GROUP BY table;
-- double call should be OK
ALTER TABLE test.drop_column1 CLEAR COLUMN s IN PARTITION '200001';
ALTER TABLE test.drop_column1 CLEAR COLUMN s IN PARTITION '200002';
ALTER TABLE test.clear_column1 CLEAR COLUMN s IN PARTITION '200001';
ALTER TABLE test.clear_column1 CLEAR COLUMN s IN PARTITION '200002';
-- check optimize for non-leader replica
OPTIMIZE TABLE test.drop_column1;
OPTIMIZE TABLE test.drop_column2;
OPTIMIZE TABLE test.clear_column1;
OPTIMIZE TABLE test.clear_column2;
DROP TABLE IF EXISTS test.drop_column1;
DROP TABLE IF EXISTS test.drop_column2;
DROP TABLE IF EXISTS test.clear_column1;
DROP TABLE IF EXISTS test.clear_column2;

View File

@ -3,26 +3,26 @@ set -e
ch="clickhouse-client --stacktrace -q"
$ch "DROP TABLE IF EXISTS test.drop_column1"
$ch "DROP TABLE IF EXISTS test.drop_column2"
$ch "CREATE TABLE test.drop_column1 (d Date, i Int64, s String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/drop_column', '1', d, d, 8192)"
$ch "CREATE TABLE test.drop_column2 (d Date, i Int64, s String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/drop_column', '2', d, d, 8192)"
$ch "DROP TABLE IF EXISTS test.clear_column1"
$ch "DROP TABLE IF EXISTS test.clear_column2"
$ch "CREATE TABLE test.clear_column1 (d Date, i Int64, s String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/clear_column', '1', d, d, 8192)"
$ch "CREATE TABLE test.clear_column2 (d Date, i Int64, s String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/clear_column', '2', d, d, 8192)"
$ch "INSERT INTO test.drop_column1 VALUES ('2000-01-01', 1, 'a'), ('2000-02-01', 2, 'b')"
$ch "INSERT INTO test.drop_column1 VALUES ('2000-01-01', 3, 'c'), ('2000-02-01', 4, 'd')"
$ch "INSERT INTO test.clear_column1 VALUES ('2000-01-01', 1, 'a'), ('2000-02-01', 2, 'b')"
$ch "INSERT INTO test.clear_column1 VALUES ('2000-01-01', 3, 'c'), ('2000-02-01', 4, 'd')"
for i in `seq 3`; do
$ch "INSERT INTO test.drop_column1 VALUES ('2000-01-01', 3, 'c'), ('2000-01-01', 4, 'd')" & # insert into the same partition
$ch "ALTER TABLE test.drop_column1 CLEAR COLUMN i IN PARTITION '200001'" --replication_alter_partitions_sync=2 &
$ch "ALTER TABLE test.drop_column1 CLEAR COLUMN s IN PARTITION '200001'" --replication_alter_partitions_sync=2 &
$ch "ALTER TABLE test.drop_column1 CLEAR COLUMN i IN PARTITION '200002'" --replication_alter_partitions_sync=2 &
$ch "ALTER TABLE test.drop_column1 CLEAR COLUMN s IN PARTITION '200002'" --replication_alter_partitions_sync=2 &
$ch "INSERT INTO test.drop_column1 VALUES ('2000-03-01', 3, 'c'), ('2000-03-01', 4, 'd')" & # insert into other partition
$ch "INSERT INTO test.clear_column1 VALUES ('2000-01-01', 3, 'c'), ('2000-01-01', 4, 'd')" & # insert into the same partition
$ch "ALTER TABLE test.clear_column1 CLEAR COLUMN i IN PARTITION '200001'" --replication_alter_partitions_sync=2 &
$ch "ALTER TABLE test.clear_column1 CLEAR COLUMN s IN PARTITION '200001'" --replication_alter_partitions_sync=2 &
$ch "ALTER TABLE test.clear_column1 CLEAR COLUMN i IN PARTITION '200002'" --replication_alter_partitions_sync=2 &
$ch "ALTER TABLE test.clear_column1 CLEAR COLUMN s IN PARTITION '200002'" --replication_alter_partitions_sync=2 &
$ch "INSERT INTO test.clear_column1 VALUES ('2000-03-01', 3, 'c'), ('2000-03-01', 4, 'd')" & # insert into other partition
done
wait
$ch "SELECT DISTINCT * FROM test.drop_column2 WHERE d != toDate('2000-03-01') ORDER BY d, i, s"
$ch "SELECT DISTINCT * FROM test.drop_column2 WHERE d != toDate('2000-03-01') ORDER BY d, i, s"
$ch "SELECT DISTINCT * FROM test.clear_column2 WHERE d != toDate('2000-03-01') ORDER BY d, i, s"
$ch "SELECT DISTINCT * FROM test.clear_column2 WHERE d != toDate('2000-03-01') ORDER BY d, i, s"
$ch "DROP TABLE IF EXISTS test.drop_column1"
$ch "DROP TABLE IF EXISTS test.drop_column2"
$ch "DROP TABLE IF EXISTS test.clear_column1"
$ch "DROP TABLE IF EXISTS test.clear_column2"