diff options
author | va-kuznecov <va-kuznecov@ydb.tech> | 2022-12-14 18:52:02 +0300 |
---|---|---|
committer | va-kuznecov <va-kuznecov@ydb.tech> | 2022-12-14 18:52:02 +0300 |
commit | bcdc2e03da0a8866856c14341f908e8f0140d485 (patch) | |
tree | b656b305f3ad348da2a51b0abcbe0504955cc98b | |
parent | d92eea742a025c8c9a888871a38ae01105d4e29b (diff) | |
download | ydb-bcdc2e03da0a8866856c14341f908e8f0140d485.tar.gz |
Fix table name in TLI issue
-rw-r--r-- | ydb/core/kqp/session_actor/kqp_session_actor.cpp | 7 | ||||
-rw-r--r-- | ydb/core/kqp/session_actor/kqp_tx.h | 5 | ||||
-rw-r--r-- | ydb/core/kqp/ut/tx/kqp_locks_ut.cpp | 3 |
3 files changed, 7 insertions, 8 deletions
diff --git a/ydb/core/kqp/session_actor/kqp_session_actor.cpp b/ydb/core/kqp/session_actor/kqp_session_actor.cpp index 4c5df0b9f5f..74157a445e6 100644 --- a/ydb/core/kqp/session_actor/kqp_session_actor.cpp +++ b/ydb/core/kqp/session_actor/kqp_session_actor.cpp @@ -1056,11 +1056,8 @@ public: bool CheckTransacionLocks() { auto& txCtx = *QueryState->TxCtx; if (!txCtx.DeferredEffects.Empty() && txCtx.Locks.Broken()) { - std::vector<TIssue> issues{ - YqlIssue({}, TIssuesIds::KIKIMR_LOCKS_INVALIDATED, "Transaction locks invalidated.") - }; - ReplyQueryError(Ydb::StatusIds::ABORTED, "tx has deferred effects, but lock is broken", - MessageFromIssues(issues)); + ReplyQueryError(Ydb::StatusIds::ABORTED, "tx has deferred effects, but locks are broken", + MessageFromIssues(std::vector<TIssue>{txCtx.Locks.GetIssue()})); return false; } return true; diff --git a/ydb/core/kqp/session_actor/kqp_tx.h b/ydb/core/kqp/session_actor/kqp_tx.h index 913ade9e977..49c023179b4 100644 --- a/ydb/core/kqp/session_actor/kqp_tx.h +++ b/ydb/core/kqp/session_actor/kqp_tx.h @@ -51,6 +51,11 @@ struct TKqpTxLocks { ui64 GetLockTxId() const { return LockHandle ? LockHandle.GetLockId() : HasLocks() ? LocksMap.begin()->second.GetLockId() : 0; } size_t Size() const { return LocksMap.size(); } + NYql::TIssue GetIssue() { + Y_ENSURE(LockIssue); + return *LockIssue; + } + void ReportIssues(NYql::TExprContext& ctx) { if (LockIssue) ctx.AddError(*LockIssue); diff --git a/ydb/core/kqp/ut/tx/kqp_locks_ut.cpp b/ydb/core/kqp/ut/tx/kqp_locks_ut.cpp index bd98361d73e..b07beb62a0a 100644 --- a/ydb/core/kqp/ut/tx/kqp_locks_ut.cpp +++ b/ydb/core/kqp/ut/tx/kqp_locks_ut.cpp @@ -193,13 +193,10 @@ Y_UNIT_TEST_SUITE(KqpLocks) { result.GetIssues().PrintTo(Cerr); UNIT_ASSERT(HasIssue(result.GetIssues(), NYql::TIssuesIds::KIKIMR_LOCKS_INVALIDATED)); - // TODO: Should contain table name. - /* UNIT_ASSERT(HasIssue(result.GetIssues(), NYql::TIssuesIds::KIKIMR_LOCKS_INVALIDATED, [] (const NYql::TIssue& issue) { return issue.GetMessage().Contains("/Root/Test"); })); - */ result = session1.ExecuteDataQuery(Q1_(R"( SELECT * FROM Test WHERE Group = 11; |