Skip to content

Commit 5cef685

Browse files
committed
Report nodeId with create session response.
1 parent 1a5147c commit 5cef685

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

ydb/core/grpc_services/rpc_common/rpc_common_kqp_session.cpp

+10-6
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ class TCreateSessionRPC : public TActorBootstrapped<TCreateSessionRPC> {
124124
// We already lost the client, so the client should not see this status
125125
Reply(Ydb::StatusIds::INTERNAL_ERROR);
126126
} else {
127-
SendSessionResult(kqpResponse.GetSessionId());
127+
SendSessionResult(kqpResponse);
128128
PassAway();
129129
return;
130130
}
@@ -134,7 +134,7 @@ class TCreateSessionRPC : public TActorBootstrapped<TCreateSessionRPC> {
134134
}
135135

136136
private:
137-
virtual void SendSessionResult(const TString& id) = 0;
137+
virtual void SendSessionResult(const NKikimrKqp::TCreateSessionResponse& kqpResponse) = 0;
138138

139139
template<typename TResp>
140140
void ReplyResponseError(const TResp& kqpResponse) {
@@ -171,9 +171,9 @@ class TCreateSessionTableService : public TCreateSessionRPC {
171171
}
172172

173173
private:
174-
void SendSessionResult(const TString& id) override {
174+
void SendSessionResult(const NKikimrKqp::TCreateSessionResponse& kqpResponse) override {
175175
Ydb::Table::CreateSessionResult result;
176-
result.set_session_id(id);
176+
result.set_session_id(kqpResponse.GetSessionId());
177177
static_cast<TCtx*>(Request.get())->SendResult(result, Ydb::StatusIds::SUCCESS);
178178
};
179179
};
@@ -186,11 +186,15 @@ class TCreateSessionQueryService : public TCreateSessionRPC {
186186
}
187187

188188
private:
189-
void SendSessionResult(const TString& id) override {
189+
void SendSessionResult(const NKikimrKqp::TCreateSessionResponse& kqpResponse) override {
190190
using TRes = Ydb::Query::CreateSessionResponse;
191191
auto res = google::protobuf::Arena::CreateMessage<TRes>(Request->GetArena());;
192192
res->set_status(Ydb::StatusIds::SUCCESS);
193-
res->set_session_id(id);
193+
res->set_session_id(kqpResponse.GetSessionId());
194+
195+
if (kqpResponse.HasNodeId())
196+
res->set_node_id(kqpResponse.GetNodeId());
197+
194198
Request->Reply(res, Ydb::StatusIds::SUCCESS);
195199
};
196200
};

ydb/core/kqp/proxy_service/kqp_proxy_service.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,7 @@ class TKqpProxyService : public TActorBootstrapped<TKqpProxyService> {
570570
{
571571
auto& response = *responseEv->Record.MutableResponse();
572572
response.SetSessionId(result.Value->SessionId);
573+
response.SetNodeId(SelfId().NodeId());
573574
dbCounters = result.Value->DbCounters;
574575
} else {
575576
dbCounters = Counters->GetDbCounters(request.GetDatabase());

ydb/core/protos/kqp.proto

+1
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ message TEvCreateSessionRequest {
332332

333333
message TCreateSessionResponse {
334334
optional bytes SessionId = 1;
335+
optional int64 NodeId = 2;
335336
}
336337

337338
message TEvCreateSessionResponse {

ydb/public/lib/ut_helpers/ut_helpers_query.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ TString CreateQuerySession(const TGRpcClientConfig& clientConfig) {
2626
UNIT_ASSERT_C(grpcStatus.GRpcStatusCode == 0, grpcStatus.Msg + " " + grpcStatus.Details);
2727
UNIT_ASSERT_VALUES_EQUAL(response.status(), Ydb::StatusIds::SUCCESS);
2828
UNIT_ASSERT(response.session_id() != "");
29+
UNIT_ASSERT(response.node_id() != 0);
2930
sessionId = response.session_id();
3031
};
3132

0 commit comments

Comments
 (0)