diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index 6e544bac81c..7ebbf52ea7e 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -7,35 +7,16 @@ endif () include(${ClickHouse_SOURCE_DIR}/cmake/split_debug_symbols.cmake) # The `clickhouse` binary is a multi purpose tool that contains multiple execution modes (client, server, etc.), -# each of them may be built and linked as a separate library. -# If you do not know what modes you need, turn this option OFF and enable SERVER and CLIENT only. +# So client/server/... is just a symlink to `clickhouse` binary. +# +# But, there are several components that requires extra libraries, like keeper +# requires NuRaft, that regular binary does not requires, so you can disable +# compilation of this components. +# +# If you do not know what modes you need, turn then all. option (ENABLE_CLICKHOUSE_ALL "Enable all ClickHouse modes by default" ON) -option (ENABLE_CLICKHOUSE_SERVER "Server mode (main mode)" ${ENABLE_CLICKHOUSE_ALL}) -option (ENABLE_CLICKHOUSE_CLIENT "Client mode (interactive tui/shell that connects to the server)" - ${ENABLE_CLICKHOUSE_ALL}) - -# https://clickhouse.com/docs/en/operations/utilities/clickhouse-local/ -option (ENABLE_CLICKHOUSE_LOCAL "Local files fast processing mode" ${ENABLE_CLICKHOUSE_ALL}) - -# https://clickhouse.com/docs/en/operations/utilities/clickhouse-benchmark/ -option (ENABLE_CLICKHOUSE_BENCHMARK "Queries benchmarking mode" ${ENABLE_CLICKHOUSE_ALL}) - -option (ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG "Configs processor (extract values etc.)" ${ENABLE_CLICKHOUSE_ALL}) - -# https://clickhouse.com/docs/en/operations/utilities/clickhouse-compressor/ -option (ENABLE_CLICKHOUSE_COMPRESSOR "Data compressor and decompressor" ${ENABLE_CLICKHOUSE_ALL}) - -# https://clickhouse.com/docs/en/operations/utilities/clickhouse-copier/ -option (ENABLE_CLICKHOUSE_COPIER "Inter-cluster data copying mode" ${ENABLE_CLICKHOUSE_ALL}) - -option (ENABLE_CLICKHOUSE_FORMAT "Queries pretty-printer and formatter with syntax highlighting" - ${ENABLE_CLICKHOUSE_ALL}) - # https://clickhouse.com/docs/en/operations/utilities/clickhouse-obfuscator/ -option (ENABLE_CLICKHOUSE_OBFUSCATOR "Table data obfuscator (convert real data to benchmark-ready one)" - ${ENABLE_CLICKHOUSE_ALL}) - # https://clickhouse.com/docs/en/operations/utilities/odbc-bridge/ # TODO Also needs NANODBC. if (ENABLE_ODBC AND NOT USE_MUSL) @@ -51,18 +32,12 @@ endif () # https://presentations.clickhouse.com/matemarketing_2020/ option (ENABLE_CLICKHOUSE_GIT_IMPORT "A tool to analyze Git repositories" ${ENABLE_CLICKHOUSE_ALL}) -option (ENABLE_CLICKHOUSE_STATIC_FILES_DISK_UPLOADER "A tool to export table data files to be later put to a static files web server" ${ENABLE_CLICKHOUSE_ALL}) - option (ENABLE_CLICKHOUSE_KEEPER "ClickHouse alternative to ZooKeeper" ${ENABLE_CLICKHOUSE_ALL}) option (ENABLE_CLICKHOUSE_KEEPER_CONVERTER "Util allows to convert ZooKeeper logs and snapshots into clickhouse-keeper snapshot" ${ENABLE_CLICKHOUSE_ALL}) option (ENABLE_CLICKHOUSE_KEEPER_CLIENT "ClickHouse Keeper Client" ${ENABLE_CLICKHOUSE_ALL}) -option (ENABLE_CLICKHOUSE_SU "A tool similar to 'su'" ${ENABLE_CLICKHOUSE_ALL}) - -option (ENABLE_CLICKHOUSE_DISKS "A tool to manage disks" ${ENABLE_CLICKHOUSE_ALL}) - if (NOT ENABLE_NURAFT) # RECONFIGURE_MESSAGE_LEVEL should not be used here, # since ENABLE_NURAFT is set to OFF for FreeBSD and Darwin. @@ -71,27 +46,7 @@ if (NOT ENABLE_NURAFT) set(ENABLE_CLICKHOUSE_KEEPER_CONVERTER OFF) endif() -option(ENABLE_CLICKHOUSE_INSTALL "Install ClickHouse without .deb/.rpm/.tgz packages (having the binary only)" ${ENABLE_CLICKHOUSE_ALL}) - -message(STATUS "ClickHouse modes:") - -if (NOT ENABLE_CLICKHOUSE_SERVER) - message(WARNING "ClickHouse server mode is not going to be built.") -else() - message(STATUS "Server mode: ON") -endif() - -if (NOT ENABLE_CLICKHOUSE_CLIENT) - message(WARNING "ClickHouse client mode is not going to be built. You won't be able to connect to the server and run tests") -else() - message(STATUS "Client mode: ON") -endif() - -if (ENABLE_CLICKHOUSE_LOCAL) - message(STATUS "Local mode: ON") -else() - message(STATUS "Local mode: OFF") -endif() +message(STATUS "ClickHouse extra components:") if (ENABLE_CLICKHOUSE_SELF_EXTRACTING) message(STATUS "Self-extracting executable: ON") @@ -99,42 +54,6 @@ else() message(STATUS "Self-extracting executable: OFF") endif() -if (ENABLE_CLICKHOUSE_BENCHMARK) - message(STATUS "Benchmark mode: ON") -else() - message(STATUS "Benchmark mode: OFF") -endif() - -if (ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG) - message(STATUS "Extract from config mode: ON") -else() - message(STATUS "Extract from config mode: OFF") -endif() - -if (ENABLE_CLICKHOUSE_COMPRESSOR) - message(STATUS "Compressor mode: ON") -else() - message(STATUS "Compressor mode: OFF") -endif() - -if (ENABLE_CLICKHOUSE_COPIER) - message(STATUS "Copier mode: ON") -else() - message(STATUS "Copier mode: OFF") -endif() - -if (ENABLE_CLICKHOUSE_FORMAT) - message(STATUS "Format mode: ON") -else() - message(STATUS "Format mode: OFF") -endif() - -if (ENABLE_CLICKHOUSE_OBFUSCATOR) - message(STATUS "Obfuscator mode: ON") -else() - message(STATUS "Obfuscator mode: OFF") -endif() - if (ENABLE_CLICKHOUSE_ODBC_BRIDGE) message(STATUS "ODBC bridge mode: ON") else() @@ -147,18 +66,6 @@ else() message(STATUS "Library bridge mode: OFF") endif() -if (ENABLE_CLICKHOUSE_INSTALL) - message(STATUS "ClickHouse install: ON") -else() - message(STATUS "ClickHouse install: OFF") -endif() - -if (ENABLE_CLICKHOUSE_GIT_IMPORT) - message(STATUS "ClickHouse git-import: ON") -else() - message(STATUS "ClickHouse git-import: OFF") -endif() - if (ENABLE_CLICKHOUSE_KEEPER) message(STATUS "ClickHouse keeper mode: ON") else() @@ -177,19 +84,6 @@ else() message(STATUS "ClickHouse keeper-client mode: OFF") endif() - -if (ENABLE_CLICKHOUSE_DISKS) - message(STATUS "Clickhouse disks mode: ON") -else() - message(STATUS "ClickHouse disks mode: OFF") -endif() - -if (ENABLE_CLICKHOUSE_SU) - message(STATUS "ClickHouse su: ON") -else() - message(STATUS "ClickHouse su: OFF") -endif() - configure_file (config_tools.h.in ${CONFIG_INCLUDE_PATH}/config_tools.h) macro(clickhouse_target_link_split_lib target name) @@ -272,42 +166,6 @@ endif () target_link_libraries (clickhouse PRIVATE clickhouse_common_io string_utils ${HARMFUL_LIB}) target_include_directories (clickhouse PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) -if (ENABLE_CLICKHOUSE_SERVER) - clickhouse_target_link_split_lib(clickhouse server) -endif () -if (ENABLE_CLICKHOUSE_CLIENT) - clickhouse_target_link_split_lib(clickhouse client) -endif () -if (ENABLE_CLICKHOUSE_LOCAL) - clickhouse_target_link_split_lib(clickhouse local) -endif () -if (ENABLE_CLICKHOUSE_BENCHMARK) - clickhouse_target_link_split_lib(clickhouse benchmark) -endif () -if (ENABLE_CLICKHOUSE_COPIER) - clickhouse_target_link_split_lib(clickhouse copier) -endif () -if (ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG) - clickhouse_target_link_split_lib(clickhouse extract-from-config) -endif () -if (ENABLE_CLICKHOUSE_COMPRESSOR) - clickhouse_target_link_split_lib(clickhouse compressor) -endif () -if (ENABLE_CLICKHOUSE_FORMAT) - clickhouse_target_link_split_lib(clickhouse format) -endif () -if (ENABLE_CLICKHOUSE_OBFUSCATOR) - clickhouse_target_link_split_lib(clickhouse obfuscator) -endif () -if (ENABLE_CLICKHOUSE_GIT_IMPORT) - clickhouse_target_link_split_lib(clickhouse git-import) -endif () -if (ENABLE_CLICKHOUSE_STATIC_FILES_DISK_UPLOADER) - clickhouse_target_link_split_lib(clickhouse static-files-disk-uploader) -endif () -if (ENABLE_CLICKHOUSE_SU) - clickhouse_target_link_split_lib(clickhouse su) -endif () if (ENABLE_CLICKHOUSE_KEEPER) clickhouse_target_link_split_lib(clickhouse keeper) endif() @@ -317,83 +175,41 @@ endif() if (ENABLE_CLICKHOUSE_KEEPER_CLIENT) clickhouse_target_link_split_lib(clickhouse keeper-client) endif() -if (ENABLE_CLICKHOUSE_INSTALL) - clickhouse_target_link_split_lib(clickhouse install) -endif () -if (ENABLE_CLICKHOUSE_DISKS) - clickhouse_target_link_split_lib(clickhouse disks) -endif () +clickhouse_target_link_split_lib(clickhouse install) set (CLICKHOUSE_BUNDLE) +macro(clickhouse_program_install name lib_name) + clickhouse_target_link_split_lib(clickhouse ${lib_name}) + add_custom_target (${name} ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse ${name} DEPENDS clickhouse) + install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${name}" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) + list(APPEND CLICKHOUSE_BUNDLE ${name}) +endmacro() + if (ENABLE_CLICKHOUSE_SELF_EXTRACTING) list(APPEND CLICKHOUSE_BUNDLE self-extracting) endif () -if (NOT BUILD_STANDALONE_KEEPER) - add_custom_target (ch ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse ch DEPENDS clickhouse) -endif() -if (ENABLE_CLICKHOUSE_SERVER) - add_custom_target (clickhouse-server ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-server DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-server" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-server) -endif () -if (ENABLE_CLICKHOUSE_CLIENT) - add_custom_target (clickhouse-client ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-client DEPENDS clickhouse) - add_custom_target (chc ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse chc DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-client" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-client) -endif () -if (ENABLE_CLICKHOUSE_LOCAL) - add_custom_target (clickhouse-local ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-local DEPENDS clickhouse) - add_custom_target (chl ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse chl DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-local" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-local) -endif () -if (ENABLE_CLICKHOUSE_BENCHMARK) - add_custom_target (clickhouse-benchmark ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-benchmark DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-benchmark" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-benchmark) -endif () -if (ENABLE_CLICKHOUSE_COPIER) - add_custom_target (clickhouse-copier ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-copier DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-copier" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-copier) -endif () -if (ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG) - add_custom_target (clickhouse-extract-from-config ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-extract-from-config DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-extract-from-config" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-extract-from-config) -endif () -if (ENABLE_CLICKHOUSE_COMPRESSOR) - add_custom_target (clickhouse-compressor ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-compressor DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-compressor" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-compressor) -endif () -if (ENABLE_CLICKHOUSE_FORMAT) - add_custom_target (clickhouse-format ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-format DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-format" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-format) -endif () -if (ENABLE_CLICKHOUSE_OBFUSCATOR) - add_custom_target (clickhouse-obfuscator ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-obfuscator DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-obfuscator" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-obfuscator) -endif () -if (ENABLE_CLICKHOUSE_GIT_IMPORT) - add_custom_target (clickhouse-git-import ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-git-import DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-git-import" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-git-import) -endif () -if (ENABLE_CLICKHOUSE_STATIC_FILES_DISK_UPLOADER) - add_custom_target (clickhouse-static-files-disk-uploader ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-static-files-disk-uploader DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-static-files-disk-uploader" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-static-files-disk-uploader) -endif () -if (ENABLE_CLICKHOUSE_SU) - add_custom_target (clickhouse-su ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-su DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-su" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-su) -endif () +clickhouse_program_install(clickhouse-server server) + +# client +clickhouse_program_install(clickhouse-client client) +add_custom_target (chc ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse chc DEPENDS clickhouse) + +# local +clickhouse_program_install(clickhouse-local local) +add_custom_target (chl ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse chl DEPENDS clickhouse) +add_custom_target (ch ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse ch DEPENDS clickhouse) + +clickhouse_program_install(clickhouse-benchmark benchmark) +clickhouse_program_install(clickhouse-copier copier) +clickhouse_program_install(clickhouse-extract-from-config extract-from-config) +clickhouse_program_install(clickhouse-compressor compressor) +clickhouse_program_install(clickhouse-format format) +clickhouse_program_install(clickhouse-obfuscator obfuscator) +clickhouse_program_install(clickhouse-git-import git-import) +clickhouse_program_install(clickhouse-static-files-disk-uploader static-files-disk-uploader) +clickhouse_program_install(clickhouse-disks disks) +clickhouse_program_install(clickhouse-su su) if (ENABLE_CLICKHOUSE_KEEPER) if (NOT BUILD_STANDALONE_KEEPER AND CREATE_KEEPER_SYMLINK) @@ -423,11 +239,6 @@ if (ENABLE_CLICKHOUSE_KEEPER_CLIENT) list(APPEND CLICKHOUSE_BUNDLE clickhouse-keeper-client) endif () -if (ENABLE_CLICKHOUSE_DISKS) - add_custom_target (clickhouse-disks ALL COMMAND ${CMAKE_COMMAND} -E create_symlink clickhouse clickhouse-disks DEPENDS clickhouse) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/clickhouse-disks" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) - list(APPEND CLICKHOUSE_BUNDLE clickhouse-disks) -endif () add_custom_target (clickhouse-bundle ALL DEPENDS ${CLICKHOUSE_BUNDLE}) diff --git a/programs/benchmark/Benchmark.cpp b/programs/benchmark/Benchmark.cpp index 59fc6c0c17f..961c678b936 100644 --- a/programs/benchmark/Benchmark.cpp +++ b/programs/benchmark/Benchmark.cpp @@ -640,7 +640,8 @@ int mainEntryClickHouseBenchmark(int argc, char ** argv) { std::cout << "Usage: " << argv[0] << " [options] < queries.txt\n"; std::cout << desc << "\n"; - return 1; + std::cout << "\nSee also: https://clickhouse.com/docs/en/operations/utilities/clickhouse-benchmark/\n"; + return 0; } print_stacktrace = options.count("stacktrace"); diff --git a/programs/client/Client.cpp b/programs/client/Client.cpp index cc142470d7f..fdd262f185d 100644 --- a/programs/client/Client.cpp +++ b/programs/client/Client.cpp @@ -1000,6 +1000,7 @@ void Client::printHelpMessage(const OptionsDescription & options_description) std::cout << options_description.external_description.value() << "\n"; std::cout << options_description.hosts_and_ports_description.value() << "\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"; } diff --git a/programs/compressor/Compressor.cpp b/programs/compressor/Compressor.cpp index cc25747702a..7125fdc744f 100644 --- a/programs/compressor/Compressor.cpp +++ b/programs/compressor/Compressor.cpp @@ -100,6 +100,7 @@ int mainEntryClickHouseCompressor(int argc, char ** argv) std::cout << "Usage: " << argv[0] << " [options] < INPUT > OUTPUT" << std::endl; std::cout << "Usage: " << argv[0] << " [options] INPUT OUTPUT" << std::endl; std::cout << desc << std::endl; + std::cout << "\nSee also: https://clickhouse.com/docs/en/operations/utilities/clickhouse-compressor/\n"; return 0; } diff --git a/programs/config_tools.h.in b/programs/config_tools.h.in index 65ef3ca762b..50a1de5628b 100644 --- a/programs/config_tools.h.in +++ b/programs/config_tools.h.in @@ -2,23 +2,8 @@ #pragma once -#cmakedefine01 ENABLE_CLICKHOUSE_SERVER -#cmakedefine01 ENABLE_CLICKHOUSE_CLIENT -#cmakedefine01 ENABLE_CLICKHOUSE_LOCAL -#cmakedefine01 ENABLE_CLICKHOUSE_BENCHMARK -#cmakedefine01 ENABLE_CLICKHOUSE_PERFORMANCE_TEST -#cmakedefine01 ENABLE_CLICKHOUSE_COPIER -#cmakedefine01 ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG -#cmakedefine01 ENABLE_CLICKHOUSE_COMPRESSOR -#cmakedefine01 ENABLE_CLICKHOUSE_FORMAT -#cmakedefine01 ENABLE_CLICKHOUSE_OBFUSCATOR -#cmakedefine01 ENABLE_CLICKHOUSE_GIT_IMPORT -#cmakedefine01 ENABLE_CLICKHOUSE_INSTALL #cmakedefine01 ENABLE_CLICKHOUSE_ODBC_BRIDGE #cmakedefine01 ENABLE_CLICKHOUSE_LIBRARY_BRIDGE #cmakedefine01 ENABLE_CLICKHOUSE_KEEPER #cmakedefine01 ENABLE_CLICKHOUSE_KEEPER_CLIENT #cmakedefine01 ENABLE_CLICKHOUSE_KEEPER_CONVERTER -#cmakedefine01 ENABLE_CLICKHOUSE_STATIC_FILES_DISK_UPLOADER -#cmakedefine01 ENABLE_CLICKHOUSE_SU -#cmakedefine01 ENABLE_CLICKHOUSE_DISKS diff --git a/programs/copier/ClusterCopierApp.cpp b/programs/copier/ClusterCopierApp.cpp index 53f79888573..fdf07dec61a 100644 --- a/programs/copier/ClusterCopierApp.cpp +++ b/programs/copier/ClusterCopierApp.cpp @@ -78,6 +78,7 @@ void ClusterCopierApp::handleHelp(const std::string &, const std::string &) help_formatter.setHeader("Copies tables from one cluster to another"); help_formatter.setUsage("--config-file --task-path "); help_formatter.format(std::cerr); + help_formatter.setFooter("See also: https://clickhouse.com/docs/en/operations/utilities/clickhouse-copier/"); stopOptionsProcessing(); } diff --git a/programs/git-import/git-import.cpp b/programs/git-import/git-import.cpp index 16244232bee..fdabeacd46e 100644 --- a/programs/git-import/git-import.cpp +++ b/programs/git-import/git-import.cpp @@ -172,6 +172,7 @@ clickhouse-client --query "INSERT INTO git.commits FORMAT TSV" < commits.tsv clickhouse-client --query "INSERT INTO git.file_changes FORMAT TSV" < file_changes.tsv clickhouse-client --query "INSERT INTO git.line_changes FORMAT TSV" < line_changes.tsv +Check out this presentation: https://presentations.clickhouse.com/matemarketing_2020/ )"; namespace po = boost::program_options; diff --git a/programs/install/Install.cpp b/programs/install/Install.cpp index a4a4672f5c4..c3d2c61d6d0 100644 --- a/programs/install/Install.cpp +++ b/programs/install/Install.cpp @@ -242,9 +242,10 @@ int mainEntryClickHouseInstall(int argc, char ** argv) if (options.count("help")) { + std::cout << "Install ClickHouse without .deb/.rpm/.tgz packages (having the binary only)\n\n"; std::cout << "Usage: " << formatWithSudo(std::string(argv[0]) + " install [options]", getuid() != 0) << '\n'; std::cout << desc << '\n'; - return 1; + return 0; } /// We need to copy binary to the binary directory. diff --git a/programs/local/LocalServer.cpp b/programs/local/LocalServer.cpp index 443d4a52fa3..d7acf4112a5 100644 --- a/programs/local/LocalServer.cpp +++ b/programs/local/LocalServer.cpp @@ -828,6 +828,7 @@ void LocalServer::printHelpMessage([[maybe_unused]] const OptionsDescription & o std::cout << options_description.main_description.value() << "\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 << "\nSee also: https://clickhouse.com/docs/en/operations/utilities/clickhouse-local/\n"; #endif } diff --git a/programs/main.cpp b/programs/main.cpp index 1ff7e5db560..3896b3819a8 100644 --- a/programs/main.cpp +++ b/programs/main.cpp @@ -24,36 +24,28 @@ /// Universal executable for various clickhouse applications -#if ENABLE_CLICKHOUSE_SERVER int mainEntryClickHouseServer(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_CLIENT int mainEntryClickHouseClient(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_LOCAL int mainEntryClickHouseLocal(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_BENCHMARK int mainEntryClickHouseBenchmark(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG int mainEntryClickHouseExtractFromConfig(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_COMPRESSOR int mainEntryClickHouseCompressor(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_FORMAT int mainEntryClickHouseFormat(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_COPIER int mainEntryClickHouseClusterCopier(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_OBFUSCATOR int mainEntryClickHouseObfuscator(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_GIT_IMPORT int mainEntryClickHouseGitImport(int argc, char ** argv); -#endif +int mainEntryClickHouseStaticFilesDiskUploader(int argc, char ** argv); +int mainEntryClickHouseSU(int argc, char ** argv); +int mainEntryClickHouseDisks(int argc, char ** argv); + +int mainEntryClickHouseHashBinary(int, char **) +{ + /// Intentionally without newline. So you can run: + /// objcopy --add-section .clickhouse.hash=<(./clickhouse hash-binary) clickhouse + std::cout << getHashOfLoadedBinaryHex(); + return 0; +} + #if ENABLE_CLICKHOUSE_KEEPER int mainEntryClickHouseKeeper(int argc, char ** argv); #endif @@ -63,30 +55,13 @@ int mainEntryClickHouseKeeperConverter(int argc, char ** argv); #if ENABLE_CLICKHOUSE_KEEPER_CLIENT int mainEntryClickHouseKeeperClient(int argc, char ** argv); #endif -#if ENABLE_CLICKHOUSE_STATIC_FILES_DISK_UPLOADER -int mainEntryClickHouseStaticFilesDiskUploader(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_SU -int mainEntryClickHouseSU(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_INSTALL + +// install int mainEntryClickHouseInstall(int argc, char ** argv); int mainEntryClickHouseStart(int argc, char ** argv); int mainEntryClickHouseStop(int argc, char ** argv); int mainEntryClickHouseStatus(int argc, char ** argv); int mainEntryClickHouseRestart(int argc, char ** argv); -#endif -#if ENABLE_CLICKHOUSE_DISKS -int mainEntryClickHouseDisks(int argc, char ** argv); -#endif - -int mainEntryClickHouseHashBinary(int, char **) -{ - /// Intentionally without newline. So you can run: - /// objcopy --add-section .clickhouse.hash=<(./clickhouse hash-binary) clickhouse - std::cout << getHashOfLoadedBinaryHex(); - return 0; -} namespace { @@ -98,36 +73,22 @@ using MainFunc = int (*)(int, char**); /// Add an item here to register new application std::pair clickhouse_applications[] = { -#if ENABLE_CLICKHOUSE_LOCAL {"local", mainEntryClickHouseLocal}, -#endif -#if ENABLE_CLICKHOUSE_CLIENT {"client", mainEntryClickHouseClient}, -#endif -#if ENABLE_CLICKHOUSE_BENCHMARK {"benchmark", mainEntryClickHouseBenchmark}, -#endif -#if ENABLE_CLICKHOUSE_SERVER {"server", mainEntryClickHouseServer}, -#endif -#if ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG {"extract-from-config", mainEntryClickHouseExtractFromConfig}, -#endif -#if ENABLE_CLICKHOUSE_COMPRESSOR {"compressor", mainEntryClickHouseCompressor}, -#endif -#if ENABLE_CLICKHOUSE_FORMAT {"format", mainEntryClickHouseFormat}, -#endif -#if ENABLE_CLICKHOUSE_COPIER {"copier", mainEntryClickHouseClusterCopier}, -#endif -#if ENABLE_CLICKHOUSE_OBFUSCATOR {"obfuscator", mainEntryClickHouseObfuscator}, -#endif -#if ENABLE_CLICKHOUSE_GIT_IMPORT {"git-import", mainEntryClickHouseGitImport}, -#endif + {"static-files-disk-uploader", mainEntryClickHouseStaticFilesDiskUploader}, + {"su", mainEntryClickHouseSU}, + {"hash-binary", mainEntryClickHouseHashBinary}, + {"disks", mainEntryClickHouseDisks}, + + // keeper #if ENABLE_CLICKHOUSE_KEEPER {"keeper", mainEntryClickHouseKeeper}, #endif @@ -137,34 +98,20 @@ std::pair clickhouse_applications[] = #if ENABLE_CLICKHOUSE_KEEPER_CLIENT {"keeper-client", mainEntryClickHouseKeeperClient}, #endif -#if ENABLE_CLICKHOUSE_INSTALL + + // install {"install", mainEntryClickHouseInstall}, {"start", mainEntryClickHouseStart}, {"stop", mainEntryClickHouseStop}, {"status", mainEntryClickHouseStatus}, {"restart", mainEntryClickHouseRestart}, -#endif -#if ENABLE_CLICKHOUSE_STATIC_FILES_DISK_UPLOADER - {"static-files-disk-uploader", mainEntryClickHouseStaticFilesDiskUploader}, -#endif -#if ENABLE_CLICKHOUSE_SU - {"su", mainEntryClickHouseSU}, -#endif - {"hash-binary", mainEntryClickHouseHashBinary}, -#if ENABLE_CLICKHOUSE_DISKS - {"disks", mainEntryClickHouseDisks}, -#endif }; /// Add an item here to register a new short name std::pair clickhouse_short_names[] = { -#if ENABLE_CLICKHOUSE_LOCAL {"chl", "local"}, -#endif -#if ENABLE_CLICKHOUSE_CLIENT {"chc", "client"}, -#endif }; int printHelp(int, char **) diff --git a/programs/su/su.cpp b/programs/su/su.cpp index a8f61fb32b6..33d929898f4 100644 --- a/programs/su/su.cpp +++ b/programs/su/su.cpp @@ -107,6 +107,7 @@ try if (argc < 3) { + std::cout << "A tool similar to 'su'" << std::endl; std::cout << "Usage: ./clickhouse su user:group ..." << std::endl; exit(0); // NOLINT(concurrency-mt-unsafe) }