diff --git a/dbms/src/Storages/MergeTree/MergeTreeData.cpp b/dbms/src/Storages/MergeTree/MergeTreeData.cpp index f34d1aa107c..a470cc97bee 100644 --- a/dbms/src/Storages/MergeTree/MergeTreeData.cpp +++ b/dbms/src/Storages/MergeTree/MergeTreeData.cpp @@ -2967,6 +2967,8 @@ MergeTreeData::MutableDataPartsVector MergeTreeData::tryLoadPartsToAttach(const String part_id = partition->as().value.safeGet(); validateDetachedPartName(part_id); renamed_parts.addPart(part_id, "attaching_" + part_id); + if (MergeTreePartInfo::tryParsePartName(part_id, nullptr, format_version)) + name_to_disk[part_id] = getDiskForPart(part_id, source_dir); } else { diff --git a/dbms/tests/queries/0_stateless/01015_attach_part.reference b/dbms/tests/queries/0_stateless/01015_attach_part.reference new file mode 100644 index 00000000000..b6cd514cd25 --- /dev/null +++ b/dbms/tests/queries/0_stateless/01015_attach_part.reference @@ -0,0 +1,3 @@ +1000 +0 +1000 diff --git a/dbms/tests/queries/0_stateless/01015_attach_part.sql b/dbms/tests/queries/0_stateless/01015_attach_part.sql new file mode 100644 index 00000000000..290b5eb967f --- /dev/null +++ b/dbms/tests/queries/0_stateless/01015_attach_part.sql @@ -0,0 +1,22 @@ +DROP TABLE IF EXISTS table_01; + +CREATE TABLE table_01 ( + date Date, + n Int32 +) ENGINE = MergeTree() +PARTITION BY date +ORDER BY date; + +INSERT INTO table_01 SELECT toDate('2019-10-01'), number FROM system.numbers LIMIT 1000; + +SELECT COUNT() FROM table_01; + +ALTER TABLE table_01 DETACH PARTITION ID '20191001'; + +SELECT COUNT() FROM table_01; + +ALTER TABLE table_01 ATTACH PART '20191001_1_1_0'; + +SELECT COUNT() FROM table_01; + +DROP TABLE IF EXISTS table_01;