78 static constexpr std::size_t kDefaultRowsInChunk = 1024;
82 detail::ConnectionPtr&& conn,
84 OptionalCommandControl trx_cmd_ctl = {},
85 detail::SteadyClock::time_point trx_start_time = detail::SteadyClock::now()
88 void SetName(std::string name);
108 template <
typename... Args>
109 ResultSet Execute(
const Query& query,
const Args&... args) {
110 return Execute(OptionalCommandControl{}, query, args...);
124 template <
typename... Args>
125 ResultSet Execute(OptionalCommandControl statement_cmd_ctl,
const Query& query,
const Args&... args) {
126 detail::StaticQueryParameters<
sizeof...(args)> params;
127 params.Write(GetConnectionUserTypes(), args...);
128 return DoExecute(query, detail::QueryParameters{params}, statement_cmd_ctl);
142 return Execute(OptionalCommandControl{}
, query
, store
);
172 template <
typename Container>
189 template <
typename Container>
200 template <
typename Container>
201 void ExecuteBulk(
const Query& query,
const Container& args, std::size_t chunk_rows = kDefaultRowsInChunk);
211 template <
typename Container>
213 OptionalCommandControl statement_cmd_ctl,
215 const Container& args,
216 std::size_t chunk_rows = kDefaultRowsInChunk
233 template <
typename Container>
234 void ExecuteDecomposeBulk(
const Query& query,
const Container& args, std::size_t chunk_rows = kDefaultRowsInChunk);
250 template <
typename Container>
252 OptionalCommandControl statement_cmd_ctl,
254 const Container& args,
255 std::size_t chunk_rows = kDefaultRowsInChunk
263 template <
typename... Args>
265 return MakePortal(OptionalCommandControl{}, query, args...);
273 template <
typename... Args>
274 Portal MakePortal(OptionalCommandControl statement_cmd_ctl,
const Query& query,
const Args&... args) {
275 detail::StaticQueryParameters<
sizeof...(args)> params;
276 params.Write(GetConnectionUserTypes(), args...);
277 return MakePortal(PortalName{}, query, detail::QueryParameters{params}, statement_cmd_ctl);
299 void SetParameter(
const std::string& param_name,
const std::string& value);
315 TimeoutDuration GetConnStatementTimeoutDebug()
const;
320 const detail::QueryParameters& params,
321 OptionalCommandControl statement_cmd_ctl
326 const detail::QueryParameters& params,
327 OptionalCommandControl statement_cmd_ctl
330 const UserTypes& GetConnectionUserTypes()
const;
333 detail::ConnectionPtr conn_;
385 OptionalCommandControl statement_cmd_ctl,
387 const Container& args,
388 std::size_t chunk_rows
390 io::SplitContainerByColumns(args, chunk_rows).Perform([&query, &statement_cmd_ctl,
this](
const auto&... args) {
391 this->Execute(statement_cmd_ctl, query, args...);