47 const impl::ClickhouseSettings& settings,
53 Cluster(
const Cluster&) =
delete;
60 template <
typename... Args>
61 ExecutionResult
Execute(
const Query& query,
const Args&... args)
const;
71 template <
typename... Args>
72 ExecutionResult
Execute(OptionalCommandControl,
const Query& query,
const Args&... args)
const;
87 void Insert(
const std::string& table_name,
const std::vector<std::string_view>& column_names,
const T& data)
const;
99 OptionalCommandControl optional_cc,
100 const std::string& table_name,
101 const std::vector<std::string_view>& column_names,
116 template <
typename Container>
118 const std::string& table_name,
119 const std::vector<std::string_view>& column_names,
120 const Container& data
136 template <
typename Container>
138 OptionalCommandControl optional_cc,
139 const std::string& table_name,
140 const std::vector<std::string_view>& column_names,
141 const Container& data
149 using std::runtime_error::runtime_error;
153 void DoInsert(OptionalCommandControl,
const impl::InsertionRequest& request)
const;
155 ExecutionResult DoExecute(OptionalCommandControl,
const Query& query)
const;
157 const impl::Pool& GetPool()
const;
159 std::vector<impl::Pool> pools_;
160 mutable std::atomic<std::size_t> current_pool_ind_{0};
171 OptionalCommandControl optional_cc,
172 const std::string& table_name,
173 const std::vector<std::string_view>& column_names,
176 const auto request = impl::InsertionRequest::Create(table_name, column_names, data);
178 DoInsert(optional_cc, request);
192 OptionalCommandControl optional_cc,
193 const std::string& table_name,
194 const std::vector<std::string_view>& column_names,
195 const Container& data
197 if (data.empty())
return;
199 const auto request = impl::InsertionRequest::CreateFromRows(table_name, column_names, data);
201 DoInsert(optional_cc, request);
210ExecutionResult Cluster::
Execute(OptionalCommandControl optional_cc,
const Query& query,
const Args&... args)
const {
211 const auto formatted_query = impl::WithArgs(query, args...);
212 return DoExecute(optional_cc, formatted_query);