mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-27 01:51:59 +00:00
Merge pull request #62973 from yariks5s/reduce_help_messages
Reduce verbosity of `clickhouse client --help`
This commit is contained in:
commit
8cc67f7c95
@ -7,6 +7,8 @@ toc_max_heading_level: 2
|
|||||||
|
|
||||||
# Core Settings
|
# Core Settings
|
||||||
|
|
||||||
|
All below settings are also available in table [system.settings](/docs/en/operations/system-tables/settings).
|
||||||
|
|
||||||
## additional_table_filters
|
## additional_table_filters
|
||||||
|
|
||||||
An additional filter expression that is applied after reading
|
An additional filter expression that is applied after reading
|
||||||
|
@ -918,11 +918,13 @@ bool Client::processWithFuzzing(const String & full_query)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Client::printHelpMessage(const OptionsDescription & options_description)
|
void Client::printHelpMessage(const OptionsDescription & options_description, bool verbose)
|
||||||
{
|
{
|
||||||
std::cout << options_description.main_description.value() << "\n";
|
std::cout << options_description.main_description.value() << "\n";
|
||||||
std::cout << options_description.external_description.value() << "\n";
|
std::cout << options_description.external_description.value() << "\n";
|
||||||
std::cout << options_description.hosts_and_ports_description.value() << "\n";
|
std::cout << options_description.hosts_and_ports_description.value() << "\n";
|
||||||
|
if (verbose)
|
||||||
|
std::cout << "All settings are documented at https://clickhouse.com/docs/en/operations/settings/settings.\n\n";
|
||||||
std::cout << "In addition, --param_name=value can be specified for substitution of parameters for parametrized queries.\n";
|
std::cout << "In addition, --param_name=value can be specified for substitution of parameters for parametrized queries.\n";
|
||||||
std::cout << "\nSee also: https://clickhouse.com/docs/en/integrations/sql-clients/cli\n";
|
std::cout << "\nSee also: https://clickhouse.com/docs/en/integrations/sql-clients/cli\n";
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ protected:
|
|||||||
|
|
||||||
String getName() const override { return "client"; }
|
String getName() const override { return "client"; }
|
||||||
|
|
||||||
void printHelpMessage(const OptionsDescription & options_description) override;
|
void printHelpMessage(const OptionsDescription & options_description, bool verbose) override;
|
||||||
|
|
||||||
void addOptions(OptionsDescription & options_description) override;
|
void addOptions(OptionsDescription & options_description) override;
|
||||||
|
|
||||||
|
@ -774,10 +774,12 @@ void LocalServer::processConfig()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LocalServer::printHelpMessage([[maybe_unused]] const OptionsDescription & options_description)
|
void LocalServer::printHelpMessage(const OptionsDescription & options_description, bool verbose)
|
||||||
{
|
{
|
||||||
std::cout << getHelpHeader() << "\n";
|
std::cout << getHelpHeader() << "\n";
|
||||||
std::cout << options_description.main_description.value() << "\n";
|
std::cout << options_description.main_description.value() << "\n";
|
||||||
|
if (verbose)
|
||||||
|
std::cout << "All settings are documented at https://clickhouse.com/docs/en/operations/settings/settings.\n\n";
|
||||||
std::cout << getHelpFooter() << "\n";
|
std::cout << getHelpFooter() << "\n";
|
||||||
std::cout << "In addition, --param_name=value can be specified for substitution of parameters for parametrized queries.\n";
|
std::cout << "In addition, --param_name=value can be specified for substitution of parameters for parametrized queries.\n";
|
||||||
std::cout << "\nSee also: https://clickhouse.com/docs/en/operations/utilities/clickhouse-local/\n";
|
std::cout << "\nSee also: https://clickhouse.com/docs/en/operations/utilities/clickhouse-local/\n";
|
||||||
|
@ -36,7 +36,7 @@ protected:
|
|||||||
|
|
||||||
String getName() const override { return "local"; }
|
String getName() const override { return "local"; }
|
||||||
|
|
||||||
void printHelpMessage(const OptionsDescription & options_description) override;
|
void printHelpMessage(const OptionsDescription & options_description, bool verbose) override;
|
||||||
|
|
||||||
void addOptions(OptionsDescription & options_description) override;
|
void addOptions(OptionsDescription & options_description) override;
|
||||||
|
|
||||||
|
@ -2955,7 +2955,8 @@ void ClientBase::init(int argc, char ** argv)
|
|||||||
|
|
||||||
/// Common options for clickhouse-client and clickhouse-local.
|
/// Common options for clickhouse-client and clickhouse-local.
|
||||||
options_description.main_description->add_options()
|
options_description.main_description->add_options()
|
||||||
("help", "produce help message")
|
("help", "print usage summary, combine with --verbose to display all options")
|
||||||
|
("verbose", "print query and other debugging info")
|
||||||
("version,V", "print version information and exit")
|
("version,V", "print version information and exit")
|
||||||
("version-clean", "print version in machine-readable format and exit")
|
("version-clean", "print version in machine-readable format and exit")
|
||||||
|
|
||||||
@ -2979,7 +2980,6 @@ void ClientBase::init(int argc, char ** argv)
|
|||||||
("time,t", "print query execution time to stderr in non-interactive mode (for benchmarks)")
|
("time,t", "print query execution time to stderr in non-interactive mode (for benchmarks)")
|
||||||
|
|
||||||
("echo", "in batch mode, print query before execution")
|
("echo", "in batch mode, print query before execution")
|
||||||
("verbose", "print query and other debugging info")
|
|
||||||
|
|
||||||
("log-level", po::value<std::string>(), "log level")
|
("log-level", po::value<std::string>(), "log level")
|
||||||
("server_logs_file", po::value<std::string>(), "put server logs into specified file")
|
("server_logs_file", po::value<std::string>(), "put server logs into specified file")
|
||||||
@ -3008,6 +3008,8 @@ void ClientBase::init(int argc, char ** argv)
|
|||||||
|
|
||||||
addOptions(options_description);
|
addOptions(options_description);
|
||||||
|
|
||||||
|
OptionsDescription options_description_non_verbose = options_description;
|
||||||
|
|
||||||
auto getter = [](const auto & op)
|
auto getter = [](const auto & op)
|
||||||
{
|
{
|
||||||
String op_long_name = op->long_name();
|
String op_long_name = op->long_name();
|
||||||
@ -3042,11 +3044,17 @@ void ClientBase::init(int argc, char ** argv)
|
|||||||
exit(0); // NOLINT(concurrency-mt-unsafe)
|
exit(0); // NOLINT(concurrency-mt-unsafe)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.count("verbose"))
|
||||||
|
config().setBool("verbose", true);
|
||||||
|
|
||||||
/// Output of help message.
|
/// Output of help message.
|
||||||
if (options.count("help")
|
if (options.count("help")
|
||||||
|| (options.count("host") && options["host"].as<std::string>() == "elp")) /// If user writes -help instead of --help.
|
|| (options.count("host") && options["host"].as<std::string>() == "elp")) /// If user writes -help instead of --help.
|
||||||
{
|
{
|
||||||
printHelpMessage(options_description);
|
if (config().getBool("verbose", false))
|
||||||
|
printHelpMessage(options_description, true);
|
||||||
|
else
|
||||||
|
printHelpMessage(options_description_non_verbose, false);
|
||||||
exit(0); // NOLINT(concurrency-mt-unsafe)
|
exit(0); // NOLINT(concurrency-mt-unsafe)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3113,8 +3121,6 @@ void ClientBase::init(int argc, char ** argv)
|
|||||||
config().setBool("highlight", options["highlight"].as<bool>());
|
config().setBool("highlight", options["highlight"].as<bool>());
|
||||||
if (options.count("history_file"))
|
if (options.count("history_file"))
|
||||||
config().setString("history_file", options["history_file"].as<std::string>());
|
config().setString("history_file", options["history_file"].as<std::string>());
|
||||||
if (options.count("verbose"))
|
|
||||||
config().setBool("verbose", true);
|
|
||||||
if (options.count("interactive"))
|
if (options.count("interactive"))
|
||||||
config().setBool("interactive", true);
|
config().setBool("interactive", true);
|
||||||
if (options.count("pager"))
|
if (options.count("pager"))
|
||||||
|
@ -121,7 +121,7 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
virtual void updateLoggerLevel(const String &) {}
|
virtual void updateLoggerLevel(const String &) {}
|
||||||
virtual void printHelpMessage(const OptionsDescription & options_description) = 0;
|
virtual void printHelpMessage(const OptionsDescription & options_description, bool verbose) = 0;
|
||||||
virtual void addOptions(OptionsDescription & options_description) = 0;
|
virtual void addOptions(OptionsDescription & options_description) = 0;
|
||||||
virtual void processOptions(const OptionsDescription & options_description,
|
virtual void processOptions(const OptionsDescription & options_description,
|
||||||
const CommandLineOptions & options,
|
const CommandLineOptions & options,
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
OK
|
||||||
|
OK
|
43
tests/queries/0_stateless/03133_help_message_verbosity.sh
Executable file
43
tests/queries/0_stateless/03133_help_message_verbosity.sh
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Checks that "clickhouse-client/local --help" prints a brief summary of CLI arguments and "--help --verbose" prints all possible CLI arguments
|
||||||
|
CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||||
|
# shellcheck source=../shell_config.sh
|
||||||
|
. "$CUR_DIR"/../shell_config.sh
|
||||||
|
|
||||||
|
# Unique identifier for concurrent execution
|
||||||
|
PID=$$
|
||||||
|
|
||||||
|
# Get the help message in short and verbose form and put them into txt files
|
||||||
|
$CLICKHOUSE_CLIENT --help > "help_msg_$PID.txt"
|
||||||
|
$CLICKHOUSE_CLIENT --help --verbose > "verbose_help_msg_$PID.txt"
|
||||||
|
|
||||||
|
# Sizes of files
|
||||||
|
size_short=$(stat -c %s "help_msg_$PID.txt")
|
||||||
|
size_verbose=$(stat -c %s "verbose_help_msg_$PID.txt")
|
||||||
|
|
||||||
|
# If the size of the short help message is less, everything is OK
|
||||||
|
if [ $size_short -lt $size_verbose ]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "Not OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm "help_msg_$PID.txt"
|
||||||
|
rm "verbose_help_msg_$PID.txt"
|
||||||
|
|
||||||
|
# The same for clickhouse local
|
||||||
|
$CLICKHOUSE_LOCAL --help > "help_msg_$PID.txt"
|
||||||
|
$CLICKHOUSE_LOCAL --help --verbose > "verbose_help_msg_$PID.txt"
|
||||||
|
|
||||||
|
size_short=$(stat -c %s "help_msg_$PID.txt")
|
||||||
|
size_verbose=$(stat -c %s "verbose_help_msg_$PID.txt")
|
||||||
|
|
||||||
|
if [ $size_short -lt $size_verbose ]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "Not OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm "help_msg_$PID.txt"
|
||||||
|
rm "verbose_help_msg_$PID.txt"
|
Loading…
Reference in New Issue
Block a user