From f23fad2ba0d00dc204697a8e10c333690d083b0e Mon Sep 17 00:00:00 2001 From: dcherednik <dcherednik@ydb.tech> Date: Wed, 11 Oct 2023 13:06:41 +0300 Subject: Set request unit trailing header for ScanQuery/ScanYql sctipts. KIKIMR-19243 --- library/cpp/grpc/client/grpc_client_low.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'library/cpp/grpc/client/grpc_client_low.h') diff --git a/library/cpp/grpc/client/grpc_client_low.h b/library/cpp/grpc/client/grpc_client_low.h index e3f786242d..acec2de075 100644 --- a/library/cpp/grpc/client/grpc_client_low.h +++ b/library/cpp/grpc/client/grpc_client_low.h @@ -132,6 +132,7 @@ struct TGrpcStatus { TString Details; int GRpcStatusCode; bool InternalError; + std::multimap<TString, TString> ServerTrailingMetadata; TGrpcStatus() : GRpcStatusCode(grpc::StatusCode::OK) @@ -809,6 +810,11 @@ private: } else if (readCallback) { if (status.Ok()) { status = TGrpcStatus(grpc::StatusCode::OUT_OF_RANGE, "Read EOF"); + for (const auto& [name, value] : Context.GetServerTrailingMetadata()) { + status.ServerTrailingMetadata.emplace( + TString(name.begin(), name.end()), + TString(value.begin(), value.end())); + } } readCallback(std::move(status)); } else if (finishCallback) { @@ -1205,6 +1211,11 @@ private: } else if (readCallback) { if (status.Ok()) { status = TGrpcStatus(grpc::StatusCode::OUT_OF_RANGE, "Read EOF"); + for (const auto& [name, value] : Context.GetServerTrailingMetadata()) { + status.ServerTrailingMetadata.emplace( + TString(name.begin(), name.end()), + TString(value.begin(), value.end())); + } } readCallback(std::move(status)); } else if (finishCallback) { -- cgit v1.2.3