mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-13 18:02:24 +00:00
Make RENAME COLUMN barrier
This commit is contained in:
parent
fc6c62e2ff
commit
b8b0f1c3d3
@ -102,6 +102,15 @@ MarkCache::MappedPtr MergeTreeMarksLoader::loadMarksImpl()
|
||||
|
||||
auto res = std::make_shared<MarksInCompressedFile>(marks_count * columns_in_mark);
|
||||
|
||||
if (file_size == 0 && marks_count != 0)
|
||||
{
|
||||
throw Exception(
|
||||
ErrorCodes::CORRUPTED_DATA,
|
||||
"Empty marks file '{}': {}, must be: {}",
|
||||
std::string(fs::path(data_part_storage->getFullPath()) / mrk_path),
|
||||
file_size, expected_uncompressed_size);
|
||||
}
|
||||
|
||||
if (!index_granularity_info.mark_type.compressed && expected_uncompressed_size != file_size)
|
||||
throw Exception(
|
||||
ErrorCodes::CORRUPTED_DATA,
|
||||
@ -138,7 +147,12 @@ MarkCache::MappedPtr MergeTreeMarksLoader::loadMarksImpl()
|
||||
}
|
||||
|
||||
if (i * mark_size != expected_uncompressed_size)
|
||||
throw Exception(ErrorCodes::CANNOT_READ_ALL_DATA, "Cannot read all marks from file {}", mrk_path);
|
||||
{
|
||||
throw Exception(
|
||||
ErrorCodes::CANNOT_READ_ALL_DATA,
|
||||
"Cannot read all marks from file {}, marks expected {} (bytes size {}), marks read {} (bytes size {})",
|
||||
mrk_path, marks_count, expected_uncompressed_size, i, reader->count());
|
||||
}
|
||||
}
|
||||
|
||||
res->protect();
|
||||
|
@ -1813,7 +1813,30 @@ MutationCommands ReplicatedMergeTreeQueue::getMutationCommands(
|
||||
|
||||
MutationCommands commands;
|
||||
for (auto it = begin; it != end; ++it)
|
||||
commands.insert(commands.end(), it->second->entry->commands.begin(), it->second->entry->commands.end());
|
||||
{
|
||||
bool rename_command = false;
|
||||
if (it->second->entry->isAlterMutation())
|
||||
{
|
||||
const auto & single_mutation_commands = it->second->entry->commands;
|
||||
for (const auto & command : single_mutation_commands)
|
||||
{
|
||||
if (command.type == MutationCommand::Type::RENAME_COLUMN)
|
||||
{
|
||||
rename_command = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (rename_command)
|
||||
{
|
||||
if (commands.empty())
|
||||
commands.insert(commands.end(), it->second->entry->commands.begin(), it->second->entry->commands.end());
|
||||
break;
|
||||
}
|
||||
else
|
||||
commands.insert(commands.end(), it->second->entry->commands.begin(), it->second->entry->commands.end());
|
||||
}
|
||||
|
||||
return commands;
|
||||
}
|
||||
|
@ -1114,9 +1114,34 @@ MergeMutateSelectedEntryPtr StorageMergeTree::selectPartsToMutate(
|
||||
if (current_ast_elements + commands_size >= max_ast_elements)
|
||||
break;
|
||||
|
||||
current_ast_elements += commands_size;
|
||||
commands->insert(commands->end(), it->second.commands.begin(), it->second.commands.end());
|
||||
last_mutation_to_apply = it;
|
||||
bool rename_command = false;
|
||||
const auto & single_mutation_commands = it->second.commands;
|
||||
for (const auto & command : single_mutation_commands)
|
||||
{
|
||||
if (command.type == MutationCommand::Type::RENAME_COLUMN)
|
||||
{
|
||||
rename_command = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (rename_command)
|
||||
{
|
||||
if (commands->empty())
|
||||
{
|
||||
current_ast_elements += commands_size;
|
||||
commands->insert(commands->end(), it->second.commands.begin(), it->second.commands.end());
|
||||
last_mutation_to_apply = it;
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
current_ast_elements += commands_size;
|
||||
commands->insert(commands->end(), it->second.commands.begin(), it->second.commands.end());
|
||||
last_mutation_to_apply = it;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
assert(commands->empty() == (last_mutation_to_apply == mutations_end_it));
|
||||
|
@ -32,7 +32,7 @@ while [[ $counter -lt $retries ]]; do
|
||||
done
|
||||
|
||||
|
||||
$CLICKHOUSE_CLIENT --query="ALTER TABLE table_to_rename UPDATE v2 = 77 WHERE 1 = 1" &
|
||||
$CLICKHOUSE_CLIENT --query="ALTER TABLE table_to_rename UPDATE v2 = 77 WHERE 1 = 1 SETTINGS mutations_sync = 2" &
|
||||
|
||||
counter=0 retries=60
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user