#pragma once #include #include #include namespace DB { class ClickHouseVersion { public: /// NOLINTBEGIN(google-explicit-constructor) ClickHouseVersion(const String & version); ClickHouseVersion(const char * version); /// NOLINTEND(google-explicit-constructor) String toString() const; bool operator<(const ClickHouseVersion & other) const { return components < other.components; } bool operator>=(const ClickHouseVersion & other) const { return components >= other.components; } private: std::vector components; }; namespace SettingsChangesHistory { struct SettingChange { String name; Field previous_value; Field new_value; String reason; }; using SettingsChanges = std::vector; } const std::map & getSettingsChangesHistory(); const std::map & getMergeTreeSettingsChangesHistory(); }