aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorva-kuznecov <va-kuznecov@ydb.tech>2022-12-14 18:52:02 +0300
committerva-kuznecov <va-kuznecov@ydb.tech>2022-12-14 18:52:02 +0300
commitbcdc2e03da0a8866856c14341f908e8f0140d485 (patch)
treeb656b305f3ad348da2a51b0abcbe0504955cc98b
parentd92eea742a025c8c9a888871a38ae01105d4e29b (diff)
downloadydb-bcdc2e03da0a8866856c14341f908e8f0140d485.tar.gz
Fix table name in TLI issue
-rw-r--r--ydb/core/kqp/session_actor/kqp_session_actor.cpp7
-rw-r--r--ydb/core/kqp/session_actor/kqp_tx.h5
-rw-r--r--ydb/core/kqp/ut/tx/kqp_locks_ut.cpp3
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;