Skip to content

Commit 5876551

Browse files
authored
Moved commit "Replaced proto types to SDK types in ExecuteScript settings" from ydb repo (#257)
1 parent 4944918 commit 5876551

File tree

5 files changed

+40
-12
lines changed

5 files changed

+40
-12
lines changed

include/ydb-cpp-sdk/client/query/query.h

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
#include "stats.h"
44

5-
#include <ydb-cpp-sdk/src/api/protos/ydb_query.pb.h>
6-
75
#include <ydb-cpp-sdk/client/result/result.h>
86
#include <ydb-cpp-sdk/client/types/fluent_settings_helpers.h>
97
#include <ydb-cpp-sdk/client/types/operation/operation.h>
@@ -95,9 +93,9 @@ using TAsyncBeginTransactionResult = NThreading::TFuture<TBeginTransactionResult
9593
using TAsyncCommitTransactionResult = NThreading::TFuture<TCommitTransactionResult>;
9694

9795
struct TExecuteScriptSettings : public TOperationRequestSettings<TExecuteScriptSettings> {
98-
FLUENT_SETTING_DEFAULT(Ydb::Query::Syntax, Syntax, Ydb::Query::SYNTAX_YQL_V1);
99-
FLUENT_SETTING_DEFAULT(Ydb::Query::ExecMode, ExecMode, Ydb::Query::EXEC_MODE_EXECUTE);
100-
FLUENT_SETTING_DEFAULT(Ydb::Query::StatsMode, StatsMode, Ydb::Query::STATS_MODE_NONE);
96+
FLUENT_SETTING_DEFAULT(ESyntax, Syntax, ESyntax::YqlV1);
97+
FLUENT_SETTING_DEFAULT(EExecMode, ExecMode, EExecMode::Execute);
98+
FLUENT_SETTING_DEFAULT(EStatsMode, StatsMode, EStatsMode::None);
10199
FLUENT_SETTING(TDuration, ResultsTtl);
102100
};
103101

@@ -114,6 +112,21 @@ class TQueryContent {
114112
ESyntax Syntax = ESyntax::Unspecified;
115113
};
116114

115+
class TResultSetMeta {
116+
public:
117+
TResultSetMeta() = default;
118+
119+
explicit TResultSetMeta(const std::vector<TColumn>& columns)
120+
: Columns(columns)
121+
{}
122+
123+
explicit TResultSetMeta(std::vector<TColumn>&& columns)
124+
: Columns(std::move(columns))
125+
{}
126+
127+
std::vector<TColumn> Columns;
128+
};
129+
117130
class TScriptExecutionOperation : public TOperation {
118131
public:
119132
struct TMetadata {
@@ -122,8 +135,8 @@ class TScriptExecutionOperation : public TOperation {
122135
EExecMode ExecMode = EExecMode::Unspecified;
123136

124137
TQueryContent ScriptContent;
125-
Ydb::TableStats::QueryStats ExecStats;
126-
std::vector<Ydb::Query::ResultSetMeta> ResultSetsMeta;
138+
TExecStats ExecStats;
139+
std::vector<TResultSetMeta> ResultSetsMeta;
127140
};
128141

129142
using TOperation::TOperation;

include/ydb-cpp-sdk/client/query/stats.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class TExecStats {
2222
friend class NYdb::TProtoAccessor;
2323

2424
public:
25+
TExecStats() = default;
26+
2527
explicit TExecStats(Ydb::TableStats::QueryStats&& proto);
2628
explicit TExecStats(const Ydb::TableStats::QueryStats& proto);
2729

src/client/query/client.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ class TQueryClient::TImpl: public TClientImplCommon<TQueryClient::TImpl>, public
8787
NThreading::TFuture<TScriptExecutionOperation> ExecuteScript(const std::string& script, const std::optional<TParams>& params, const TExecuteScriptSettings& settings) {
8888
using namespace Ydb::Query;
8989
auto request = MakeOperationRequest<ExecuteScriptRequest>(settings);
90-
request.set_exec_mode(settings.ExecMode_);
91-
request.set_stats_mode(settings.StatsMode_);
92-
request.mutable_script_content()->set_syntax(settings.Syntax_);
90+
request.set_exec_mode(::Ydb::Query::ExecMode(settings.ExecMode_));
91+
request.set_stats_mode(::Ydb::Query::StatsMode(settings.StatsMode_));
92+
request.mutable_script_content()->set_syntax(::Ydb::Query::Syntax(settings.Syntax_));
9393
request.mutable_script_content()->set_text(script);
9494
SetDuration(settings.ResultsTtl_, *request.mutable_results_ttl());
9595

src/client/query/impl/client_session.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include <ydb-cpp-sdk/client/query/client.h>
44
#include <src/client/impl/ydb_internal/kqp_session_common/kqp_session_common.h>
55

6+
#include <src/api/grpc/ydb_query_v1.grpc.pb.h>
7+
68
namespace NYdb::NQuery {
79

810
class TSession::TImpl : public TKqpSessionCommon {

src/client/query/query.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#include <ydb-cpp-sdk/client/query/query.h>
22

3+
#include <src/api/grpc/ydb_query_v1.grpc.pb.h>
4+
35
namespace NYdb::NQuery {
46

57
std::optional<EStatsMode> ParseStatsMode(std::string_view statsMode) {
@@ -42,8 +44,17 @@ TScriptExecutionOperation::TScriptExecutionOperation(TStatus&& status, Ydb::Oper
4244
Metadata_.ExecutionId = metadata.execution_id();
4345
Metadata_.ExecMode = static_cast<EExecMode>(metadata.exec_mode());
4446
Metadata_.ExecStatus = static_cast<EExecStatus>(metadata.exec_status());
45-
Metadata_.ExecStats = metadata.exec_stats();
46-
Metadata_.ResultSetsMeta.insert(Metadata_.ResultSetsMeta.end(), metadata.result_sets_meta().begin(), metadata.result_sets_meta().end());
47+
Metadata_.ExecStats = TExecStats(std::move(*metadata.mutable_exec_stats()));
48+
49+
Metadata_.ResultSetsMeta.reserve(metadata.result_sets_meta_size());
50+
for (const auto& resultSetMeta : metadata.result_sets_meta()) {
51+
std::vector<TColumn> columns;
52+
columns.reserve(resultSetMeta.columns_size());
53+
for (const auto& column : resultSetMeta.columns()) {
54+
columns.emplace_back(column.name(), column.type());
55+
}
56+
Metadata_.ResultSetsMeta.emplace_back(std::move(columns));
57+
}
4758

4859
if (metadata.has_script_content()) {
4960
Metadata_.ScriptContent.Syntax = static_cast<ESyntax>(metadata.script_content().syntax());

0 commit comments

Comments
 (0)