Skip to content

Commit

Permalink
Replaced proto types to SDK types in ExecuteScript settings
Browse files Browse the repository at this point in the history
  • Loading branch information
Gazizonoki committed Jun 28, 2024
1 parent 6cf4565 commit d8fe3ca
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 14 deletions.
6 changes: 3 additions & 3 deletions ydb/public/sdk/cpp/client/ydb_query/client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ class TQueryClient::TImpl: public TClientImplCommon<TQueryClient::TImpl>, public
NThreading::TFuture<TScriptExecutionOperation> ExecuteScript(const TString& script, const TMaybe<TParams>& params, const TExecuteScriptSettings& settings) {
using namespace Ydb::Query;
auto request = MakeOperationRequest<ExecuteScriptRequest>(settings);
request.set_exec_mode(settings.ExecMode_);
request.set_stats_mode(settings.StatsMode_);
request.set_exec_mode(::Ydb::Query::ExecMode(settings.ExecMode_));
request.set_stats_mode(::Ydb::Query::StatsMode(settings.StatsMode_));
request.set_pool_id(settings.PoolId_);
request.mutable_script_content()->set_syntax(settings.Syntax_);
request.mutable_script_content()->set_syntax(::Ydb::Query::Syntax(settings.Syntax_));
request.mutable_script_content()->set_text(script);
SetDuration(settings.ResultsTtl_, *request.mutable_results_ttl());

Expand Down
15 changes: 13 additions & 2 deletions ydb/public/sdk/cpp/client/ydb_query/query.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include "query.h"

#include <ydb/public/api/grpc/ydb_query_v1.grpc.pb.h>

namespace NYdb::NQuery {

std::optional<EStatsMode> ParseStatsMode(std::string_view statsMode) {
Expand Down Expand Up @@ -42,8 +44,17 @@ TScriptExecutionOperation::TScriptExecutionOperation(TStatus&& status, Ydb::Oper
Metadata_.ExecutionId = metadata.execution_id();
Metadata_.ExecMode = static_cast<EExecMode>(metadata.exec_mode());
Metadata_.ExecStatus = static_cast<EExecStatus>(metadata.exec_status());
Metadata_.ExecStats = metadata.exec_stats();
Metadata_.ResultSetsMeta.insert(Metadata_.ResultSetsMeta.end(), metadata.result_sets_meta().begin(), metadata.result_sets_meta().end());
Metadata_.ExecStats = TExecStats(std::move(*metadata.mutable_exec_stats()));

Metadata_.ResultSetsMeta.reserve(metadata.result_sets_meta_size());
for (const auto& result_set_meta : metadata.result_sets_meta()) {
std::vector<TColumn> columns;
columns.reserve(result_set_meta.columns_size());
for (const auto& column : result_set_meta.columns()) {
columns.emplace_back(column.name(), column.type());
}
Metadata_.ResultSetsMeta.emplace_back(std::move(columns));
}

if (metadata.has_script_content()) {
Metadata_.ScriptContent.Syntax = static_cast<ESyntax>(metadata.script_content().syntax());
Expand Down
29 changes: 20 additions & 9 deletions ydb/public/sdk/cpp/client/ydb_query/query.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
#pragma once

#include <ydb/public/api/grpc/ydb_query_v1.grpc.pb.h>

#include <ydb/public/sdk/cpp/client/ydb_query/stats.h>
#include <ydb/public/sdk/cpp/client/ydb_result/result.h>
#include <ydb/public/sdk/cpp/client/ydb_types/fluent_settings_helpers.h>
Expand All @@ -11,8 +9,6 @@

#include <library/cpp/threading/future/future.h>

#include <variant>

namespace NYdb::NQuery {

enum class ESyntax {
Expand Down Expand Up @@ -97,9 +93,9 @@ using TAsyncBeginTransactionResult = NThreading::TFuture<TBeginTransactionResult
using TAsyncCommitTransactionResult = NThreading::TFuture<TCommitTransactionResult>;

struct TExecuteScriptSettings : public TOperationRequestSettings<TExecuteScriptSettings> {
FLUENT_SETTING_DEFAULT(Ydb::Query::Syntax, Syntax, Ydb::Query::SYNTAX_YQL_V1);
FLUENT_SETTING_DEFAULT(Ydb::Query::ExecMode, ExecMode, Ydb::Query::EXEC_MODE_EXECUTE);
FLUENT_SETTING_DEFAULT(Ydb::Query::StatsMode, StatsMode, Ydb::Query::STATS_MODE_NONE);
FLUENT_SETTING_DEFAULT(ESyntax, Syntax, ESyntax::YqlV1);
FLUENT_SETTING_DEFAULT(EExecMode, ExecMode, EExecMode::Execute);
FLUENT_SETTING_DEFAULT(EStatsMode, StatsMode, EStatsMode::None);
FLUENT_SETTING(TDuration, ResultsTtl);
FLUENT_SETTING(TString, PoolId);
};
Expand All @@ -117,6 +113,21 @@ class TQueryContent {
ESyntax Syntax = ESyntax::Unspecified;
};

class TResultSetMeta {
public:
TResultSetMeta() = default;

explicit TResultSetMeta(const std::vector<TColumn>& columns)
: Columns(columns)
{}

explicit TResultSetMeta(std::vector<TColumn>&& columns)
: Columns(std::move(columns))
{}

std::vector<TColumn> Columns;
};

class TScriptExecutionOperation : public TOperation {
public:
struct TMetadata {
Expand All @@ -125,8 +136,8 @@ class TScriptExecutionOperation : public TOperation {
EExecMode ExecMode = EExecMode::Unspecified;

TQueryContent ScriptContent;
Ydb::TableStats::QueryStats ExecStats;
TVector<Ydb::Query::ResultSetMeta> ResultSetsMeta;
TExecStats ExecStats;
std::vector<TResultSetMeta> ResultSetsMeta;
};

using TOperation::TOperation;
Expand Down
2 changes: 2 additions & 0 deletions ydb/public/sdk/cpp/client/ydb_query/stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ class TExecStats {
friend class NYdb::TProtoAccessor;

public:
TExecStats() = default;

explicit TExecStats(Ydb::TableStats::QueryStats&& proto);
explicit TExecStats(const Ydb::TableStats::QueryStats& proto);

Expand Down

0 comments on commit d8fe3ca

Please sign in to comment.