23class Savepoint
final {
25 Savepoint(std::shared_ptr<infra::
ConnectionPtr> connection, std::string name);
27 Savepoint(
const Savepoint& other) =
delete;
28 Savepoint(Savepoint&& other)
noexcept;
29 Savepoint& operator=(Savepoint&&)
noexcept;
42 template <
typename... Args>
68 template <
typename Container>
84 template <
typename T,
typename... Args>
85 CursorResultSet<T>
GetCursor(std::size_t batch_size,
const Query& query,
const Args&... args)
const;
91 Savepoint
Save(std::string name)
const;
100 ResultSet DoExecute(impl::io::ParamsBinderBase& params)
const;
101 std::string PrepareString(
const std::string& str);
102 void AssertValid()
const;
104 void AccountQueryExecute()
const noexcept;
105 void AccountQueryFailed()
const noexcept;
153CursorResultSet<T> Savepoint::
GetCursor(std::size_t batch_size,
const Query& query,
const Args&... args)
const {
155 AccountQueryExecute();
157 auto params_binder = impl::BindHelper::UpdateParamsBindings(query
.GetStatement(), *connection_, args...);
158 return CursorResultSet<T>{DoExecute(params_binder, connection_), batch_size};
159 }
catch (
const std::exception& err) {
160 AccountQueryFailed();