#120643·ClickHouse

拒绝 DROP/TRUNCATE DATABASE 会永久取消存活表中的合并操作

作者: clickgapai创建于 2026年9月17日更新于 2026年9月17日
标签comp-ddl
分析细节(证据、受影响的位置、影响)

为什么我们认为这是一个错误: executeToDatabaseImpl([src/Interpreters/InterpreterDropQuery.cpp:476](https://GitHub.com/ClickHouse/ClickHouse/blob/2d19d1b6e073/src/Interpreters/InterpreterDropQuery.cpp#L476)) -> prepare_tables(tables_to_prepare) 在第 611 行 -> my_table_ptr->flushAndPrepareForShutdown() 在第 581 行 -> StorageMergeTree::flushAndPrepareForShutdown -> merger_mutator.merges_blocker.cancelForever()([src/Storages/StorageMergeTree.cpp:294](https://GitHub.com/ClickHouse/ClickHouse/blob/2d19d1b6e073/src/Storages/StorageMergeTree.cpp#L294)) 以及 background_operations_assignee.finish()(第 297 行)。只有在此之后,第 681-696 行的每个表循环才会运行,其中 checkTableCanBeDropped(第 362 行) 或 throwIfKilled(第 683 行) 可以终止它。

内容来源: ClickHouse/ClickHouse