43 TxActor(
const TxActor&) =
delete;
45 TxActor(
TxActor&&)
noexcept =
delete;
59 template <
typename... Args>
60 ExecuteResponse
Execute(
const Query& query, Args&&... args);
62 template <
typename... Args>
63 ExecuteResponse Execute(ExecuteSettings settings,
const Query& query, Args&&... args);
65 ExecuteResponse Execute(ExecuteSettings settings,
const Query& query, PreparedArgsBuilder&& builder);
68 PreparedArgsBuilder GetBuilder()
const;
71 friend class TableClient;
74 TableClient& table_client,
75 NYdb::NQuery::TSession& session,
76 NYdb::NQuery::TTxSettings&& tx_settings,
77 engine::Deadline deadline,
81 NYdb::NQuery::TTransaction BeginTx(NYdb::NQuery::TSession& session, NYdb::NQuery::TTxSettings&& tx_settings);
83 template <TxAction Action>
84 void FinishTx(
const RequestSettings& settings);
86 TableClient& table_client_;
87 engine::Deadline deadline_;
88 std::uint32_t attempt_;
90 NYdb::NQuery::TTransaction ydb_tx_;
101ExecuteResponse
TxActor::Execute(ExecuteSettings settings,
const Query& query, Args&&... args) {
113class Transaction
final {
115 Transaction(Transaction&&)
noexcept =
default;
116 Transaction(
const Transaction&) =
delete;
117 Transaction& operator=(Transaction&&) =
delete;
118 Transaction& operator=(
const Transaction&) =
delete;
132 template <
typename... Args>
133 ExecuteResponse
Execute(
const Query& query, Args&&... args);
135 template <
typename... Args>
136 ExecuteResponse Execute(OperationSettings settings,
const Query& query, Args&&... args);
138 ExecuteResponse Execute(OperationSettings settings,
const Query& query, PreparedArgsBuilder&& builder);
140 ExecuteResponse Execute(
141 QuerySettings query_settings,
142 OperationSettings settings,
144 PreparedArgsBuilder&& builder
151 void Commit(OperationSettings settings = {});
157 PreparedArgsBuilder GetBuilder()
const;
162 TableClient& table_client,
163 std::variant<NYdb::NQuery::TTransaction, NYdb::NTable::TTransaction> ydb_tx,
165 OperationSettings&& rollback_settings
176 void MarkError()
noexcept;
179 void EnsureActive()
const;
181 TableClient& table_client_;
183 impl::StatsScope stats_scope_;
185 std::variant<NYdb::NQuery::TTransaction, NYdb::NTable::TTransaction> ydb_tx_;
186 OperationSettings rollback_settings_;
187 bool is_active_{
true};
192ExecuteResponse Transaction::
Execute(
const Query& query, Args&&... args) {
193 auto builder = GetBuilder();
194 builder.AddParams(std::forward<Args>(args)...);
195 return Execute(OperationSettings{}, query, std::move(builder));
199ExecuteResponse Transaction::Execute(OperationSettings settings,
const Query& query, Args&&... args) {