未验证 提交 b0188e6e 编写于 作者: A alexey-milovidov 提交者: GitHub

Merge pull request #5627 from proller/fix25

Allow run query with remote() in clickhouse-local; Allow redefine config from command line for clickhouse-local
......@@ -34,6 +34,7 @@
#include <Dictionaries/registerDictionaries.h>
#include <boost/program_options/options_description.hpp>
#include <boost/program_options.hpp>
#include <common/argsToConfig.h>
namespace DB
......@@ -497,6 +498,11 @@ void LocalServer::init(int argc, char ** argv)
config().setString("logger.level", options["logger.level"].as<std::string>());
if (options.count("ignore-error"))
config().setBool("ignore-error", true);
std::vector<std::string> arguments;
for (int arg_num = 1; arg_num < argc; ++arg_num)
arguments.emplace_back(argv[arg_num]);
argsToConfig(arguments, config(), 100);
}
void LocalServer::applyCmdOptions()
......
......@@ -1524,7 +1524,7 @@ UInt16 Context::getTCPPort() const
auto lock = getLock();
auto & config = getConfigRef();
return config.getInt("tcp_port");
return config.getInt("tcp_port", DBMS_DEFAULT_PORT);
}
std::optional<UInt16> Context::getTCPPortSecure() const
......
......@@ -24,3 +24,7 @@ $CLICKHOUSE_CLIENT -q "SELECT * FROM remote('${CLICKHOUSE_HOST}:${CLICKHOUSE_POR
$CLICKHOUSE_CLIENT -q "SELECT * FROM remote(test_shard_localhost, system, one);"
$CLICKHOUSE_CLIENT -q "SELECT * FROM remote(test_shard_localhost, system, one, 'default', '');"
$CLICKHOUSE_CLIENT -q "SELECT * FROM cluster('test_shard_localhost', system, one);"
# Actually tcp_port is not used because we query localhost and it is done without IPC into clickhouse-local itself.
$CLICKHOUSE_LOCAL --query "SELECT count() FROM remote('127.0.0.1', system.one)"
$CLICKHOUSE_LOCAL --query "SELECT count() FROM remote('127.0.0.1', system.one)" -- --tcp_port=59000
......@@ -13,15 +13,14 @@ class AbstractConfiguration;
class Loggers
{
public:
/// Строит необходимые логгеры
void buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Logger & logger, const std::string & cmd_name = "");
/// Закрыть файлы с логами. При следующей записи, будут созданы новые файлы.
/// Close log files. On next log write files will be reopened.
void closeLogs(Poco::Logger & logger);
std::optional<size_t> getLayer() const
{
return layer; /// layer выставляется в классе-наследнике BaseDaemonApplication.
return layer; /// layer setted in inheritor class BaseDaemonApplication.
}
protected:
......
......@@ -11,8 +11,8 @@
#include "Loggers.h"
OwnPatternFormatter::OwnPatternFormatter(const Loggers * daemon_, OwnPatternFormatter::Options options_)
: Poco::PatternFormatter(""), daemon(daemon_), options(options_)
OwnPatternFormatter::OwnPatternFormatter(const Loggers * loggers_, OwnPatternFormatter::Options options_)
: Poco::PatternFormatter(""), loggers(loggers_), options(options_)
{
}
......@@ -25,9 +25,9 @@ void OwnPatternFormatter::formatExtended(const DB::ExtendedLogMessage & msg_ext,
/// For syslog: tag must be before message and first whitespace.
/// This code is only used in Yandex.Metrika and unneeded in ClickHouse.
if ((options & ADD_LAYER_TAG) && daemon)
if ((options & ADD_LAYER_TAG) && loggers)
{
auto layer = daemon->getLayer();
auto layer = loggers->getLayer();
if (layer)
{
writeCString("layer[", wb);
......
......@@ -31,12 +31,12 @@ public:
ADD_LAYER_TAG = 1 << 0
};
OwnPatternFormatter(const Loggers * daemon_, Options options_ = ADD_NOTHING);
OwnPatternFormatter(const Loggers * loggers_, Options options_ = ADD_NOTHING);
void format(const Poco::Message & msg, std::string & text) override;
void formatExtended(const DB::ExtendedLogMessage & msg_ext, std::string & text);
private:
const Loggers * daemon;
const Loggers * loggers;
Options options;
};
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册