提交 dc209def 编写于 作者: A Alexey Milovidov

dbms: table system.replication_queue: development [#METR-18061].

上级 f8d94fcb
......@@ -41,6 +41,7 @@ struct ReplicatedMergeTreeLogEntryData
{
enum Type
{
EMPTY, /// Не используется.
GET_PART, /// Получить кусок с другой реплики.
MERGE_PARTS, /// Слить куски.
DROP_RANGE, /// Удалить куски в указанном месяце в указанном диапазоне номеров.
......@@ -62,7 +63,7 @@ struct ReplicatedMergeTreeLogEntryData
String znode_name;
Type type;
Type type = EMPTY;
String source_replica; /// Пустая строка значит, что эта запись была добавлена сразу в очередь, а не скопирована из лога.
/// Имя куска, получающегося в результате.
......@@ -77,7 +78,7 @@ struct ReplicatedMergeTreeLogEntryData
/// Для ATTACH_PART имя куска в директории detached или unreplicated.
String source_part_name;
/// Нужно переносить из директории unreplicated, а не detached.
bool attach_unreplicated;
bool attach_unreplicated = false;
/// Доступ под queue_mutex.
bool currently_executing = false; /// Выполняется ли действие сейчас.
......
......@@ -78,6 +78,9 @@ void ReplicatedMergeTreeLogEntry::writeText(WriteBuffer & out) const
out << "detached\n";
out << source_part_name << "\ninto\n" << new_part_name;
break;
default:
throw Exception("Unknown log entry type: " + DB::toString(type), ErrorCodes::LOGICAL_ERROR);
}
out << '\n';
......
......@@ -133,7 +133,8 @@ BlockInputStreams StorageSystemReplicationQueue::read(
{
const auto & entry = queue[j];
Array parts_to_merge(entry.parts_to_merge.size());
Array parts_to_merge;
parts_to_merge.reserve(entry.parts_to_merge.size());
for (const auto & name : entry.parts_to_merge)
parts_to_merge.push_back(name);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册