mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-14 19:45:11 +00:00
8782873e4f
Before the following did not work, it always uses user `dev`, even with `clickhouse-client --connection prod`: ```yaml user: dev connections_credentials: prod: name: prod user: prod ``` The problem was that before it was not possible to distinguish options that had been set via command line options and via configuration file. I've splitted this two actions, and embedded a call to parseConnectionsCredentials() in between. Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include <Client/ClientBase.h>
|
|
|
|
|
|
namespace DB
|
|
{
|
|
|
|
class Client : public ClientBase
|
|
{
|
|
public:
|
|
Client() = default;
|
|
|
|
void initialize(Poco::Util::Application & self) override;
|
|
|
|
int main(const std::vector<String> & /*args*/) override;
|
|
|
|
protected:
|
|
bool processWithFuzzing(const String & full_query) override;
|
|
std::optional<bool> processFuzzingStep(const String & query_to_execute, const ASTPtr & parsed_query);
|
|
|
|
void connect() override;
|
|
|
|
void processError(const String & query) const override;
|
|
|
|
String getName() const override { return "client"; }
|
|
|
|
void printHelpMessage(const OptionsDescription & options_description) override;
|
|
|
|
void addOptions(OptionsDescription & options_description) override;
|
|
|
|
void processOptions(
|
|
const OptionsDescription & options_description,
|
|
const CommandLineOptions & options,
|
|
const std::vector<Arguments> & external_tables_arguments,
|
|
const std::vector<Arguments> & hosts_and_ports_arguments) override;
|
|
|
|
void processConfig() override;
|
|
|
|
void readArguments(
|
|
int argc,
|
|
char ** argv,
|
|
Arguments & common_arguments,
|
|
std::vector<Arguments> & external_tables_arguments,
|
|
std::vector<Arguments> & hosts_and_ports_arguments) override;
|
|
|
|
private:
|
|
void printChangedSettings() const;
|
|
void showWarnings();
|
|
void parseConnectionsCredentials(Poco::Util::AbstractConfiguration & config, const std::string & connection_name);
|
|
std::vector<String> loadWarningMessages();
|
|
};
|
|
}
|