46 const impl::ClickhouseSettings& settings,
52 Cluster(
const Cluster&) =
delete;
56 template <
typename... Args>
57 ExecutionResult
Execute(
const Query& query,
const Args&... args)
const;
61 template <
typename... Args>
62 ExecutionResult
Execute(OptionalCommandControl,
const Query& query,
const Args&... args)
const;
71 void Insert(
const std::string& table_name,
const std::vector<std::string_view>& column_names,
const T& data)
const;
83 OptionalCommandControl optional_cc,
84 const std::string& table_name,
85 const std::vector<std::string_view>& column_names,
100 template <
typename Container>
102 const std::string& table_name,
103 const std::vector<std::string_view>& column_names,
104 const Container& data
120 template <
typename Container>
122 OptionalCommandControl optional_cc,
123 const std::string& table_name,
124 const std::vector<std::string_view>& column_names,
125 const Container& data
133 using std::runtime_error::runtime_error;
137 void DoInsert(OptionalCommandControl,
const impl::InsertionRequest& request)
const;
139 ExecutionResult DoExecute(OptionalCommandControl,
const Query& query)
const;
141 const impl::Pool& GetPool()
const;
143 std::vector<impl::Pool> pools_;
144 mutable std::atomic<std::size_t> current_pool_ind_{0};
155 OptionalCommandControl optional_cc,
156 const std::string& table_name,
157 const std::vector<std::string_view>& column_names,
160 const auto request = impl::InsertionRequest::Create(table_name, column_names, data);
162 DoInsert(optional_cc, request);
176 OptionalCommandControl optional_cc,
177 const std::string& table_name,
178 const std::vector<std::string_view>& column_names,
179 const Container& data
181 if (data.empty())
return;
183 const auto request = impl::InsertionRequest::CreateFromRows(table_name, column_names, data);
185 DoInsert(optional_cc, request);
194ExecutionResult Cluster::
Execute(OptionalCommandControl optional_cc,
const Query& query,
const Args&... args)
const {
195 const auto formatted_query = query.WithArgs(args...);
196 return DoExecute(optional_cc, formatted_query);