aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorva-kuznecov <va-kuznecov@ydb.tech>2022-09-16 12:01:57 +0300
committerva-kuznecov <va-kuznecov@ydb.tech>2022-09-16 12:01:57 +0300
commit4484f53766ffa41194f08f8da21c4cc5712a6f19 (patch)
tree14c5af452f034eaeee3323e73d8efd25359f84a7
parent9fa4aa19ccc72330f2332fb81eb0fa37565c32c7 (diff)
downloadydb-4484f53766ffa41194f08f8da21c4cc5712a6f19.tar.gz
Fix kqp_session_actor on tx with no physical queries
-rw-r--r--ydb/core/kqp/kqp_session_actor.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/ydb/core/kqp/kqp_session_actor.cpp b/ydb/core/kqp/kqp_session_actor.cpp
index 5189cf835cc..e3ace17f1b7 100644
--- a/ydb/core/kqp/kqp_session_actor.cpp
+++ b/ydb/core/kqp/kqp_session_actor.cpp
@@ -958,11 +958,15 @@ public:
}
void ExecuteOrDefer() {
+ if (!(QueryState->PreparedQuery
+ && QueryState->CurrentTx < QueryState->PreparedQuery->GetPhysicalQuery().TransactionsSize()))
+ {
+ ReplySuccess();
+ return;
+ }
auto& txCtx = *QueryState->TxCtx;
-
auto requestInfo = TKqpRequestInfo(QueryState->TraceId, SessionId);
- const NKqpProto::TKqpPhyQuery& phyQuery = QueryState->PreparedQuery->GetPhysicalQuery();
- YQL_ENSURE(QueryState->CurrentTx < phyQuery.TransactionsSize());
+ const auto& phyQuery = QueryState->PreparedQuery->GetPhysicalQuery();
auto tx = std::shared_ptr<const NKqpProto::TKqpPhyTx>(QueryState->PreparedQuery,
&phyQuery.GetTransactions(QueryState->CurrentTx));
@@ -1193,13 +1197,7 @@ public:
exec->Swap(txResult.MutableStats());
}
- if (QueryState->PreparedQuery &&
- QueryState->CurrentTx < QueryState->PreparedQuery->GetPhysicalQuery().TransactionsSize())
- {
ExecuteOrDefer();
- } else {
- ReplySuccess();
- }
}
void HandleExecute(TEvKqpExecuter::TEvStreamData::TPtr& ev) {