summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlek5andr-Kotov <[email protected]>2025-08-29 18:20:25 +0300
committerGitHub <[email protected]>2025-08-29 18:20:25 +0300
commit56fd785819f5db386170e199bf39fa37bc29aeca (patch)
tree0725e345d7fe1f0c4a68d9f89acbc90510e63d0e
parent298fe5c9d21e2226966d85ec53bb58a7da0b8258 (diff)
Tests TxUsage::Sinks_*_WriteToTopicAndTable_* (#23813)
-rw-r--r--ydb/public/sdk/cpp/src/client/topic/ut/topic_to_table_ut.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/ydb/public/sdk/cpp/src/client/topic/ut/topic_to_table_ut.cpp b/ydb/public/sdk/cpp/src/client/topic/ut/topic_to_table_ut.cpp
index 3f8020447bc..d756034abdb 100644
--- a/ydb/public/sdk/cpp/src/client/topic/ut/topic_to_table_ut.cpp
+++ b/ydb/public/sdk/cpp/src/client/topic/ut/topic_to_table_ut.cpp
@@ -484,25 +484,33 @@ std::vector<TResultSet> TFixture::TTableSession::Execute(const std::string& quer
bool commit,
const TParams& params)
{
- auto txTable = dynamic_cast<NTable::TTransaction*>(tx);
- auto txControl = NTable::TTxControl::Tx(*txTable).CommitTx(commit);
-
- auto result = Session_.ExecuteDataQuery(query, txControl, params).GetValueSync();
- UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ while (true) {
+ auto txTable = dynamic_cast<NTable::TTransaction*>(tx);
+ auto txControl = NTable::TTxControl::Tx(*txTable).CommitTx(commit);
- return std::move(result).ExtractResultSets();
+ auto result = Session_.ExecuteDataQuery(query, txControl, params).GetValueSync();
+ if (result.GetStatus() != EStatus::SESSION_BUSY) {
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ return std::move(result).ExtractResultSets();
+ }
+ std::this_thread::sleep_for(100ms);
+ }
}
TFixture::ISession::TExecuteInTxResult TFixture::TTableSession::ExecuteInTx(const std::string& query,
bool commit,
const TParams& params)
{
- auto txControl = NTable::TTxControl::BeginTx().CommitTx(commit);
-
- auto result = Session_.ExecuteDataQuery(query, txControl, params).GetValueSync();
- UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ while (true) {
+ auto txControl = NTable::TTxControl::BeginTx().CommitTx(commit);
- return {std::move(result).ExtractResultSets(), std::make_unique<NTable::TTransaction>(*result.GetTransaction())};
+ auto result = Session_.ExecuteDataQuery(query, txControl, params).GetValueSync();
+ if (result.GetStatus() != EStatus::SESSION_BUSY) {
+ UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
+ return {std::move(result).ExtractResultSets(), std::make_unique<NTable::TTransaction>(*result.GetTransaction())};
+ }
+ std::this_thread::sleep_for(100ms);
+ }
}
std::unique_ptr<TTransactionBase> TFixture::TTableSession::BeginTx()