37class Transaction
final {
40 detail::ConnectionPtr&& connection,
42 std::chrono::milliseconds network_timeout,
43 std::chrono::milliseconds statement_timeout
46 detail::ConnectionPtr&& connection,
48 const TransactionOptions& options,
49 std::chrono::milliseconds network_timeout,
50 std::chrono::milliseconds statement_timeout
53 Transaction(
const Transaction& other) =
delete;
54 Transaction(Transaction&& other)
noexcept;
57 template <
typename... Args>
58 requires((impl::kIsParameterArgument<Args> && ...))
59 ResultSet
Execute(
const Query& query,
const Args&... args) {
60 return Execute(std::nullopt, query, args...);
64 template <
typename... Args>
65 requires((impl::kIsParameterArgument<Args> && ...))
66 ResultSet
Execute(OptionalCommandControl command_control,
const Query& query,
const Args&... args) {
67 return DoExecute(command_control, query, impl::MakeParameterList(args...));
71 ResultSet
Execute(
const Query& query,
const ParameterStore& store);
74 ResultSet
Execute(OptionalCommandControl command_control,
const Query& query,
const ParameterStore& store);
80 template <
typename... Args>
81 requires((impl::kIsParameterArgument<Args> && ...))
83 return ExecuteCursor(std::nullopt, query, args...);
86 template <
typename... Args>
87 requires((impl::kIsParameterArgument<Args> && ...))
88 Cursor ExecuteCursor(OptionalCommandControl command_control,
const Query& query,
const Args&... args) {
89 return DoExecuteCursor(command_control, query, impl::MakeParameterList(args...));
92 Cursor ExecuteCursor(
const Query& query,
const ParameterStore& store);
94 Cursor ExecuteCursor(OptionalCommandControl command_control,
const Query& query,
const ParameterStore& store);
100 const BulkParameterStore& rows,
101 std::size_t chunk_rows = kDefaultBulkRows
106 OptionalCommandControl command_control,
108 const BulkParameterStore& rows,
109 std::size_t chunk_rows = kDefaultBulkRows
120 OptionalCommandControl command_control,
122 const impl::ParameterList& parameters
124 Cursor DoExecuteCursor(
125 OptionalCommandControl command_control,
127 const impl::ParameterList& parameters
129 BulkResult DoExecuteBulk(
130 OptionalCommandControl command_control,
132 const impl::ParameterRows& rows,
133 const detail::BulkLayout& layout,
134 std::size_t chunk_rows
136 void AssertValid()
const;
139 utils::FastPimpl<detail::ConnectionPtr, 24, 8> connection_;
141 std::chrono::milliseconds network_timeout_;
142 std::chrono::milliseconds statement_timeout_;
144 std::chrono::microseconds busy_time_{0};