mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-25 11:10:49 +00:00
More comments
This commit is contained in:
parent
247906a4d7
commit
44370467f0
@ -392,8 +392,9 @@ void AlterCommand::apply(StorageInMemoryMetadata & metadata) const
|
||||
for (const auto & change : settings_changes)
|
||||
{
|
||||
auto finder = [&change](const SettingChange & c) { return c.name == change.name; };
|
||||
if (auto it = std::find_if(settings_from_storage.begin(), settings_from_storage.end(), finder);
|
||||
it != settings_from_storage.end())
|
||||
auto it = std::find_if(settings_from_storage.begin(), settings_from_storage.end(), finder);
|
||||
|
||||
if (it != settings_from_storage.end())
|
||||
it->value = change.value;
|
||||
else
|
||||
settings_from_storage.push_back(change);
|
||||
@ -644,11 +645,6 @@ void AlterCommands::prepare(const StorageInMemoryMetadata & metadata, const Cont
|
||||
|
||||
void AlterCommands::validate(const StorageInMemoryMetadata & metadata, const Context & context) const
|
||||
{
|
||||
/// We will save ALTER ADD/MODIFY command indices (only the last for each column) for possible modification
|
||||
/// (we might need to add deduced types or modify default expressions).
|
||||
/// Saving indices because we can add new commands later and thus cause vector resize.
|
||||
std::unordered_map<String, size_t> column_to_command_idx;
|
||||
|
||||
for (size_t i = 0; i < size(); ++i)
|
||||
{
|
||||
auto & command = (*this)[i];
|
||||
|
@ -96,32 +96,45 @@ struct AlterCommand
|
||||
/// in each part on disk (it's not lightweight alter).
|
||||
bool isModifyingData() const;
|
||||
|
||||
/// checks that only settings changed by alter
|
||||
/// Checks that only settings changed by alter
|
||||
bool isSettingsAlter() const;
|
||||
|
||||
/// Checks that only comment changed by alter
|
||||
bool isCommentAlter() const;
|
||||
};
|
||||
|
||||
/// Return string representation of AlterCommand::Type
|
||||
String alterTypeToString(const AlterCommand::Type type);
|
||||
|
||||
class Context;
|
||||
|
||||
/// Vector of AlterCommand with several additional functions
|
||||
class AlterCommands : public std::vector<AlterCommand>
|
||||
{
|
||||
private:
|
||||
bool prepared = false;
|
||||
public:
|
||||
void apply(StorageInMemoryMetadata & metadata) const;
|
||||
|
||||
|
||||
void prepare(const StorageInMemoryMetadata & metadata, const Context & context);
|
||||
|
||||
/// Validate that commands can be applied to metadata.
|
||||
/// Checks that all columns exist and dependecies between them.
|
||||
/// This check is lightweight and base only on metadata.
|
||||
/// More accurate check have to be performed with storage->checkAlterIsPossible.
|
||||
void validate(const StorageInMemoryMetadata & metadata, const Context & context) const;
|
||||
|
||||
/// Prepare alter commands. Set ignore flag to some of them
|
||||
/// and additional commands for dependent columns.
|
||||
void prepare(const StorageInMemoryMetadata & metadata, const Context & context);
|
||||
|
||||
/// Apply all alter command in sequential order to storage metadata.
|
||||
/// Commands have to be prepared before apply.
|
||||
void apply(StorageInMemoryMetadata & metadata) const;
|
||||
|
||||
/// At least one command modify data on disk.
|
||||
bool isModifyingData() const;
|
||||
|
||||
/// At least one command modify settings.
|
||||
bool isSettingsAlter() const;
|
||||
|
||||
/// At least one command modify comments.
|
||||
bool isCommentAlter() const;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user