From 14a3c7b8cf1e6247b02483dc4aa8737d4e8883ce Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Wed, 13 Jul 2022 20:57:24 +0000 Subject: [PATCH] print changed MergeTree settings on fail --- programs/client/Client.cpp | 31 ++++++++++++++++++------------- src/Client/ClientBase.cpp | 2 +- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/programs/client/Client.cpp b/programs/client/Client.cpp index 38af518a32d..fb2a1b0043b 100644 --- a/programs/client/Client.cpp +++ b/programs/client/Client.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -458,24 +459,28 @@ void Client::connect() // Prints changed settings to stderr. Useful for debugging fuzzing failures. void Client::printChangedSettings() const { - const auto & changes = global_context->getSettingsRef().changes(); - if (!changes.empty()) + auto print_changes = [](const auto & changes, std::string_view settings_name) { - fmt::print(stderr, "Changed settings: "); - for (size_t i = 0; i < changes.size(); ++i) + if (!changes.empty()) { - if (i) + fmt::print(stderr, "Changed {}: ", settings_name); + for (size_t i = 0; i < changes.size(); ++i) { - fmt::print(stderr, ", "); + if (i) + fmt::print(stderr, ", "); + fmt::print(stderr, "{} = '{}'", changes[i].name, toString(changes[i].value)); } - fmt::print(stderr, "{} = '{}'", changes[i].name, toString(changes[i].value)); + + fmt::print(stderr, "\n"); } - fmt::print(stderr, "\n"); - } - else - { - fmt::print(stderr, "No changed settings.\n"); - } + else + { + fmt::print(stderr, "No changed {}.\n", settings_name); + } + }; + + print_changes(global_context->getSettingsRef().changes(), "settings"); + print_changes(cmd_merge_tree_settings.changes(), "MergeTree settings"); } diff --git a/src/Client/ClientBase.cpp b/src/Client/ClientBase.cpp index 4c588a00ff3..d397b08acbe 100644 --- a/src/Client/ClientBase.cpp +++ b/src/Client/ClientBase.cpp @@ -2150,7 +2150,7 @@ void ClientBase::parseAndCheckOptions(OptionsDescription & options_description, { /// Add merge tree settings manually, because names of some settings /// may clash. Query settings have higher priority and we just - /// skip ambigous merge tree settings. + /// skip ambiguous merge tree settings. auto & main_options = options_description.main_description.value(); for (const auto & setting : cmd_merge_tree_settings.all()) {