mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 16:12:01 +00:00
dbms: fixed error with DROP COLUMN in replicated tables [#METR-14848].
This commit is contained in:
parent
bd51359819
commit
22b9ecfdea
@ -594,6 +594,10 @@ public:
|
|||||||
/// Если не был вызван commit(), удаляет временные файлы, отменяя ALTER куска.
|
/// Если не был вызван commit(), удаляет временные файлы, отменяя ALTER куска.
|
||||||
~AlterDataPartTransaction();
|
~AlterDataPartTransaction();
|
||||||
|
|
||||||
|
/// Посмотреть изменения перед коммитом.
|
||||||
|
const NamesAndTypesList & getNewColumns() const { return new_columns; }
|
||||||
|
const DataPart::Checksums & getNewChecksums() const { return new_checksums; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class MergeTreeData;
|
friend class MergeTreeData;
|
||||||
|
|
||||||
|
@ -1571,8 +1571,10 @@ void StorageReplicatedMergeTree::alterThread()
|
|||||||
|
|
||||||
/// Обновим метаданные куска в ZooKeeper.
|
/// Обновим метаданные куска в ZooKeeper.
|
||||||
zkutil::Ops ops;
|
zkutil::Ops ops;
|
||||||
ops.push_back(new zkutil::Op::SetData(replica_path + "/parts/" + part->name + "/columns", part->columns.toString(), -1));
|
ops.push_back(new zkutil::Op::SetData(
|
||||||
ops.push_back(new zkutil::Op::SetData(replica_path + "/parts/" + part->name + "/checksums", part->checksums.toString(), -1));
|
replica_path + "/parts/" + part->name + "/columns", transaction->getNewColumns().toString(), -1));
|
||||||
|
ops.push_back(new zkutil::Op::SetData(
|
||||||
|
replica_path + "/parts/" + part->name + "/checksums", transaction->getNewChecksums().toString(), -1));
|
||||||
zookeeper->multi(ops);
|
zookeeper->multi(ops);
|
||||||
|
|
||||||
/// Применим изменения файлов.
|
/// Применим изменения файлов.
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
columns format version: 1
|
||||||
|
1 columns:
|
||||||
|
`d` Date
|
||||||
|
|
||||||
|
2014-01-01
|
||||||
|
2014-01-01 0
|
||||||
|
2014-02-01 1
|
||||||
|
2014-01-01
|
||||||
|
2014-02-01
|
||||||
|
columns format version: 1
|
||||||
|
1 columns:
|
||||||
|
`d` Date
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
DROP TABLE IF EXISTS test.alter;
|
||||||
|
CREATE TABLE test.alter (d Date, x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/alter', 'r1', d, (d), 8192);
|
||||||
|
|
||||||
|
INSERT INTO test.alter VALUES ('2014-01-01', 1);
|
||||||
|
ALTER TABLE test.alter DROP COLUMN x;
|
||||||
|
|
||||||
|
SELECT value FROM system.zookeeper WHERE path = '/clickhouse/tables/test/alter/replicas/r1/parts/20140101_20140101_200_200_0' AND name = 'columns' FORMAT TabSeparatedRaw;
|
||||||
|
|
||||||
|
DROP TABLE test.alter;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE test.alter (d Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/alter', 'r1', d, (d), 8192);
|
||||||
|
|
||||||
|
INSERT INTO test.alter VALUES ('2014-01-01');
|
||||||
|
SELECT * FROM test.alter ORDER BY d;
|
||||||
|
|
||||||
|
ALTER TABLE test.alter ADD COLUMN x UInt8;
|
||||||
|
|
||||||
|
INSERT INTO test.alter VALUES ('2014-02-01', 1);
|
||||||
|
SELECT * FROM test.alter ORDER BY d;
|
||||||
|
|
||||||
|
ALTER TABLE test.alter DROP COLUMN x;
|
||||||
|
SELECT * FROM test.alter ORDER BY d;
|
||||||
|
|
||||||
|
SELECT value FROM system.zookeeper WHERE path = '/clickhouse/tables/test/alter/replicas/r1/parts/20140201_20140201_200_200_0' AND name = 'columns' FORMAT TabSeparatedRaw;
|
||||||
|
|
||||||
|
DROP TABLE test.alter;
|
Loading…
Reference in New Issue
Block a user