156 static constexpr std::size_t kDefaultRowsInChunk = 1024;
159 explicit Transaction(
160 detail::ConnectionPtr&& conn,
162 OptionalCommandControl trx_cmd_ctl = {},
163 detail::SteadyClock::time_point trx_start_time = detail::SteadyClock::now()
166 void SetName(std::string name);
186 template <
typename... Args>
187 ResultSet Execute(
const Query& query,
const Args&... args) {
188 return Execute(OptionalCommandControl{}, query, args...);
202 template <
typename... Args>
203 ResultSet Execute(OptionalCommandControl statement_cmd_ctl,
const Query& query,
const Args&... args) {
204 detail::StaticQueryParameters<
sizeof...(args)> params;
205 params.Write(GetConnectionUserTypes(), args...);
206 return DoExecute(query, detail::QueryParameters{params}, statement_cmd_ctl);
203 ResultSet Execute(OptionalCommandControl statement_cmd_ctl,
const Query& query,
const Args&... args) {
…}
220 return Execute(OptionalCommandControl{}
, query
, store
);
244 template <
typename Container>
245 void ExecuteBulk(
const Query& query,
const Container& args, std::size_t chunk_rows = kDefaultRowsInChunk);
255 template <
typename Container>
257 OptionalCommandControl statement_cmd_ctl,
259 const Container& args,
260 std::size_t chunk_rows = kDefaultRowsInChunk
277 template <
typename Container>
278 void ExecuteDecomposeBulk(
const Query& query,
const Container& args, std::size_t chunk_rows = kDefaultRowsInChunk);
294 template <
typename Container>
296 OptionalCommandControl statement_cmd_ctl,
298 const Container& args,
299 std::size_t chunk_rows = kDefaultRowsInChunk
307 template <
typename... Args>
309 return MakePortal(OptionalCommandControl{}, query, args...);
317 template <
typename... Args>
318 Portal MakePortal(OptionalCommandControl statement_cmd_ctl,
const Query& query,
const Args&... args) {
319 detail::StaticQueryParameters<
sizeof...(args)> params;
320 params.Write(GetConnectionUserTypes(), args...);
321 return MakePortal(PortalName{}, query, detail::QueryParameters{params}, statement_cmd_ctl);
318 Portal MakePortal(OptionalCommandControl statement_cmd_ctl,
const Query& query,
const Args&... args) {
…}
343 void SetParameter(
const std::string& param_name,
const std::string& value);
359 TimeoutDuration GetConnStatementTimeoutDebug()
const;
363 DoExecute(
const Query& query,
const detail::QueryParameters& params, OptionalCommandControl statement_cmd_ctl);
367 const detail::QueryParameters& params,
368 OptionalCommandControl statement_cmd_ctl
371 const UserTypes& GetConnectionUserTypes()
const;
374 detail::ConnectionPtr conn_;
407 OptionalCommandControl statement_cmd_ctl,
409 const Container& args,
410 std::size_t chunk_rows
412 io::SplitContainerByColumns(args, chunk_rows).Perform([&query, &statement_cmd_ctl,
this](
const auto&... args) {
413 this->Execute(statement_cmd_ctl, query, args...);