79 static constexpr std::size_t kDefaultRowsInChunk = 1024;
83 detail::ConnectionPtr&& conn,
85 OptionalCommandControl trx_cmd_ctl = {},
86 detail::SteadyClock::time_point trx_start_time = detail::SteadyClock::now()
89 void SetName(std::string name);
109 template <
typename... Args>
110 ResultSet Execute(
const Query& query,
const Args&... args) {
111 return Execute(OptionalCommandControl{}, query, args...);
125 template <
typename... Args>
126 ResultSet Execute(OptionalCommandControl statement_cmd_ctl,
const Query& query,
const Args&... args) {
127 detail::StaticQueryParameters<
sizeof...(args)> params;
128 params.Write(GetConnectionUserTypes(), args...);
129 return DoExecute(query, detail::QueryParameters{params}, statement_cmd_ctl);
143 return Execute(OptionalCommandControl{}
, query
, store
);
173 template <
typename Container>
190 template <
typename Container>
201 template <
typename Container>
202 void ExecuteBulk(
const Query& query,
const Container& args, std::size_t chunk_rows = kDefaultRowsInChunk);
212 template <
typename Container>
214 OptionalCommandControl statement_cmd_ctl,
216 const Container& args,
217 std::size_t chunk_rows = kDefaultRowsInChunk
234 template <
typename Container>
235 void ExecuteDecomposeBulk(
const Query& query,
const Container& args, std::size_t chunk_rows = kDefaultRowsInChunk);
251 template <
typename Container>
253 OptionalCommandControl statement_cmd_ctl,
255 const Container& args,
256 std::size_t chunk_rows = kDefaultRowsInChunk
264 template <
typename... Args>
266 return MakePortal(OptionalCommandControl{}, query, args...);
274 template <
typename... Args>
275 Portal MakePortal(OptionalCommandControl statement_cmd_ctl,
const Query& query,
const Args&... args) {
276 detail::StaticQueryParameters<
sizeof...(args)> params;
277 params.Write(GetConnectionUserTypes(), args...);
278 return MakePortal(PortalName{}, query, detail::QueryParameters{params}, statement_cmd_ctl);
300 void SetParameter(std::string_view param_name, std::string_view value);
316 TimeoutDuration GetConnStatementTimeoutDebug()
const;
321 const detail::QueryParameters& params,
322 OptionalCommandControl statement_cmd_ctl
327 const detail::QueryParameters& params,
328 OptionalCommandControl statement_cmd_ctl
331 const UserTypes& GetConnectionUserTypes()
const;
334 detail::ConnectionPtr conn_;
386 OptionalCommandControl statement_cmd_ctl,
388 const Container& args,
389 std::size_t chunk_rows
391 io::SplitContainerByColumns(args, chunk_rows).Perform([&query, &statement_cmd_ctl,
this](
const auto&... args) {
392 this->Execute(statement_cmd_ctl, query, args...);