diff options
author | galaxycrab <UgnineSirdis@ydb.tech> | 2023-07-24 13:08:13 +0300 |
---|---|---|
committer | galaxycrab <UgnineSirdis@ydb.tech> | 2023-07-24 13:08:13 +0300 |
commit | 8e9b187a00d40b1cd9ef46953fbff821c7f4869e (patch) | |
tree | a466980e14537982a8d2ced7d80ef5f4f42a92ad | |
parent | 17c4bafd1ceef077f18d709106abf746aead4267 (diff) | |
download | ydb-8e9b187a00d40b1cd9ef46953fbff821c7f4869e.tar.gz |
KIKIMR-18676 Remove unused fields in QueryService API
-rw-r--r-- | ydb/core/grpc_services/query/rpc_execute_script.cpp | 23 | ||||
-rw-r--r-- | ydb/core/grpc_services/query/rpc_fetch_script_results.cpp | 2 | ||||
-rw-r--r-- | ydb/core/kqp/proxy_service/kqp_script_executions.cpp | 42 | ||||
-rw-r--r-- | ydb/core/protos/kqp.proto | 4 | ||||
-rw-r--r-- | ydb/public/api/grpc/ydb_query_v1.proto | 9 | ||||
-rw-r--r-- | ydb/public/api/protos/ydb_query.proto | 85 | ||||
-rw-r--r-- | ydb/public/sdk/cpp/client/ydb_query/client.cpp | 8 | ||||
-rw-r--r-- | ydb/public/sdk/cpp/client/ydb_query/client.h | 2 | ||||
-rw-r--r-- | ydb/public/sdk/cpp/client/ydb_query/query.cpp | 3 | ||||
-rw-r--r-- | ydb/public/sdk/cpp/client/ydb_query/query.h | 26 |
10 files changed, 47 insertions, 157 deletions
diff --git a/ydb/core/grpc_services/query/rpc_execute_script.cpp b/ydb/core/grpc_services/query/rpc_execute_script.cpp index 091d70b9e9c..1e1c32bcd2e 100644 --- a/ydb/core/grpc_services/query/rpc_execute_script.cpp +++ b/ydb/core/grpc_services/query/rpc_execute_script.cpp @@ -23,25 +23,12 @@ using TEvExecuteScriptRequest = TGrpcRequestNoOperationCall<Ydb::Query::ExecuteS bool FillQueryContent(const Ydb::Query::ExecuteScriptRequest& req, NKikimrKqp::TEvQueryRequest& kqpRequest, NYql::TIssues& issues) { - switch (req.script_case()) { - case Ydb::Query::ExecuteScriptRequest::kScriptContent: - if (!CheckQuery(req.script_content().text(), issues)) { - return false; - } - - kqpRequest.MutableRequest()->SetQuery(req.script_content().text()); - return true; - - case Ydb::Query::ExecuteScriptRequest::kScriptId: - issues.AddIssue(MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR, - "Execution by script id is not supported yet")); - return false; - - default: - issues.AddIssue(MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR, - "Unexpected query option")); - return false; + if (!CheckQuery(req.script_content().text(), issues)) { + return false; } + + kqpRequest.MutableRequest()->SetQuery(req.script_content().text()); + return true; } std::tuple<Ydb::StatusIds::StatusCode, NYql::TIssues> FillKqpRequest( diff --git a/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp b/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp index 3cf59b683e4..040f82b26ac 100644 --- a/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp +++ b/ydb/core/grpc_services/query/rpc_fetch_script_results.cpp @@ -70,7 +70,7 @@ public: return; } - Register(NKqp::CreateGetScriptExecutionResultActor(SelfId(), DatabaseName, ExecutionId, req->result_set_id(), RowsOffset, req->rows_limit() + 1)); + Register(NKqp::CreateGetScriptExecutionResultActor(SelfId(), DatabaseName, ExecutionId, req->result_set_index(), RowsOffset, req->rows_limit() + 1)); Become(&TFetchScriptResultsRPC::StateFunc); } diff --git a/ydb/core/kqp/proxy_service/kqp_script_executions.cpp b/ydb/core/kqp/proxy_service/kqp_script_executions.cpp index 4c54a4177d9..b5f1620ce39 100644 --- a/ydb/core/kqp/proxy_service/kqp_script_executions.cpp +++ b/ydb/core/kqp/proxy_service/kqp_script_executions.cpp @@ -804,7 +804,7 @@ public: WHERE database = $database AND execution_id = $execution_id; UPDATE `.metadata/result_sets` - SET + SET expire_at = CurrentUtcTimestamp() + $results_ttl where database = $database AND execution_id = $execution_id; )"; @@ -879,7 +879,7 @@ TMaybe<std::pair<TDuration, TDuration>> GetTtlFromSerializedMeta(const TString& } catch (NJson::TJsonException &e) { return Nothing(); } -} +} class TScriptExecutionFinisher : public TScriptExecutionFinisherBase { public: @@ -972,7 +972,7 @@ public: } const auto [operationTtl, resultsTtl] = *ttl; - FinishScriptExecution(Database, ExecutionId, OperationStatus, ExecStatus, operationTtl, resultsTtl, + FinishScriptExecution(Database, ExecutionId, OperationStatus, ExecStatus, operationTtl, resultsTtl, Issues, TTxControl::ContinueAndCommitTx(), std::move(QueryStats), std::move(QueryPlan), std::move(QueryAst)); FinishWasRun = true; } else { @@ -1015,7 +1015,7 @@ public: DECLARE $execution_id AS Text; SELECT operation_status, execution_status, issues, run_script_actor_id, meta FROM `.metadata/script_executions` - WHERE database = $database AND execution_id = $execution_id AND + WHERE database = $database AND execution_id = $execution_id AND (expire_at > CurrentUtcTimestamp() OR expire_at IS NULL); SELECT lease_deadline FROM `.metadata/script_execution_leases` @@ -1075,8 +1075,8 @@ public: } else if (*leaseDeadline < RunStartTime) { auto serializedMeta = result.ColumnParser("meta").GetOptionalJsonDocument(); if (!serializedMeta) { - Finish(Ydb::StatusIds::INTERNAL_ERROR, "Missing opeartion metainformation"); - return; + Finish(Ydb::StatusIds::INTERNAL_ERROR, "Missing opeartion metainformation"); + return; } const auto ttl = GetTtlFromSerializedMeta(*serializedMeta); if (!ttl) { @@ -1279,7 +1279,7 @@ public: plan, issues, stats, - ast, + ast, meta FROM `.metadata/script_executions` WHERE database = $database AND execution_id = $execution_id AND @@ -1993,11 +1993,11 @@ private: class TGetScriptExecutionResultQuery : public TQueryBase { public: - TGetScriptExecutionResultQuery(const TString& database, const TString& executionId, i32 resultSetId, i64 offset, i64 limit) - : Database(database), ExecutionId(executionId), ResultSetId(resultSetId), Offset(offset), Limit(limit) + TGetScriptExecutionResultQuery(const TString& database, const TString& executionId, i32 resultSetIndex, i64 offset, i64 limit) + : Database(database), ExecutionId(executionId), ResultSetIndex(resultSetIndex), Offset(offset), Limit(limit) { Response = MakeHolder<TEvKqp::TEvFetchScriptResultsResponse>(); - Response->Record.SetResultSetIndex(ResultSetId); + Response->Record.SetResultSetIndex(ResultSetIndex); } void OnRunQuery() override { @@ -2011,7 +2011,7 @@ public: SELECT result_set_metas, operation_status, issues, end_ts, meta FROM `.metadata/script_executions` - WHERE database = $database + WHERE database = $database AND execution_id = $execution_id AND (expire_at > CurrentUtcTimestamp() OR expire_at IS NULL); @@ -2034,7 +2034,7 @@ public: .Utf8(ExecutionId) .Build() .AddParam("$result_set_id") - .Int32(ResultSetId) + .Int32(ResultSetIndex) .Build() .AddParam("$offset") .Int64(Offset) @@ -2113,11 +2113,11 @@ public: } const NJson::TJsonValue* metaValue; - if (!value.GetValuePointer(ResultSetId, &metaValue)) { + if (!value.GetValuePointer(ResultSetIndex, &metaValue)) { Finish(Ydb::StatusIds::BAD_REQUEST, "Result set index is invalid"); return; } - + Ydb::Query::ResultSetMeta meta; NProtobufJson::Json2Proto(*metaValue, meta); @@ -2160,7 +2160,7 @@ public: private: const TString Database; const TString ExecutionId; - const i32 ResultSetId; + const i32 ResultSetIndex; const i64 Offset; const i64 Limit; THolder<TEvKqp::TEvFetchScriptResultsResponse> Response; @@ -2168,13 +2168,13 @@ private: class TGetScriptExecutionResultActor : public TActorBootstrapped<TGetScriptExecutionResultActor> { public: - TGetScriptExecutionResultActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, i32 resultSetId, i64 offset, i64 limit) - : ReplyActorId(replyActorId), Database(database), ExecutionId(executionId), ResultSetId(resultSetId), Offset(offset), Limit(limit) + TGetScriptExecutionResultActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, i32 resultSetIndex, i64 offset, i64 limit) + : ReplyActorId(replyActorId), Database(database), ExecutionId(executionId), ResultSetIndex(resultSetIndex), Offset(offset), Limit(limit) { } void Bootstrap() { - Register(new TGetScriptExecutionResultQuery(Database, ExecutionId, ResultSetId, Offset, Limit)); + Register(new TGetScriptExecutionResultQuery(Database, ExecutionId, ResultSetIndex, Offset, Limit)); Become(&TGetScriptExecutionResultActor::StateFunc); } @@ -2192,7 +2192,7 @@ private: const NActors::TActorId ReplyActorId; const TString Database; const TString ExecutionId; - const i32 ResultSetId; + const i32 ResultSetIndex; const i64 Offset; const i64 Limit; }; @@ -2250,8 +2250,8 @@ NActors::IActor* CreateSaveScriptExecutionResultActor(const NActors::TActorId& r return new TSaveScriptExecutionResultActor(replyActorId, database, executionId, resultSetId, expireAt, firstRow, std::move(serializedRows)); } -NActors::IActor* CreateGetScriptExecutionResultActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, i32 resultSetId, i64 offset, i64 limit) { - return new TGetScriptExecutionResultActor(replyActorId, database, executionId, resultSetId, offset, limit); +NActors::IActor* CreateGetScriptExecutionResultActor(const NActors::TActorId& replyActorId, const TString& database, const TString& executionId, i32 resultSetIndex, i64 offset, i64 limit) { + return new TGetScriptExecutionResultActor(replyActorId, database, executionId, resultSetIndex, offset, limit); } namespace NPrivate { diff --git a/ydb/core/protos/kqp.proto b/ydb/core/protos/kqp.proto index 14cca0f988c..bb66101735b 100644 --- a/ydb/core/protos/kqp.proto +++ b/ydb/core/protos/kqp.proto @@ -635,7 +635,7 @@ message TKqpSequencerSettings { } message TEvFetchScriptResultsRequest { - optional uint64 ResultSetId = 3; + optional uint64 ResultSetIndex = 3; optional uint64 RowsOffset = 1; optional uint64 RowsLimit = 2; } @@ -671,4 +671,4 @@ message TEvCancelScriptExecutionResponse { message TScriptExecutionOperationMeta { optional google.protobuf.Duration OperationTtl = 1; optional google.protobuf.Duration ResultsTtl = 2; -}
\ No newline at end of file +} diff --git a/ydb/public/api/grpc/ydb_query_v1.proto b/ydb/public/api/grpc/ydb_query_v1.proto index f846b54fb08..cdf6054a40e 100644 --- a/ydb/public/api/grpc/ydb_query_v1.proto +++ b/ydb/public/api/grpc/ydb_query_v1.proto @@ -54,13 +54,4 @@ service QueryService { // For persistent scripts, you can fetch results in specific position of specific result set using // position instead of fetch_token. rpc FetchScriptResults(Query.FetchScriptResultsRequest) returns (Query.FetchScriptResultsResponse); - - // Persistently save script content in DB. - rpc SaveScript(Query.SaveScriptRequest) returns (Query.SaveScriptResponse); - - // List saved scripts in DB. - rpc ListScripts(Query.ListScriptsRequest) returns (Query.ListScriptsResponse); - - // Delete saved script by id. - rpc DeleteScript(Query.DeleteScriptRequest) returns (Query.DeleteScriptResponse); } diff --git a/ydb/public/api/protos/ydb_query.proto b/ydb/public/api/protos/ydb_query.proto index 2aee0799def..0c772e05a16 100644 --- a/ydb/public/api/protos/ydb_query.proto +++ b/ydb/public/api/protos/ydb_query.proto @@ -185,46 +185,24 @@ message ExecuteQueryResponsePart { // Result set part Ydb.ResultSet result_set = 4; - reserved 5; // tx_meta - reserved 6; // result_sets_meta - // Execution statistics (last part only) - Ydb.TableStats.QueryStats exec_stats = 7; -} - -message VersionedScriptId { - // Script id - string id = 1 [(Ydb.length).le = 1024]; - - // Script revision. - // If specified in method parameters, the real script revision - // before modification will be compared with this revision - // and request will be cancelled if they don't match. - int64 revision = 2 [(Ydb.value) = ">= 0"]; + Ydb.TableStats.QueryStats exec_stats = 5; } message ExecuteScriptRequest { Ydb.Operations.OperationParams operation_params = 1; - // Session identifier. If empty, implicit session is created for script execution. - string session_id = 2 [(Ydb.length).le = 1024]; - ExecMode exec_mode = 3; + ExecMode exec_mode = 2; - oneof script { - QueryContent script_content = 4; - VersionedScriptId script_id = 5; - } + QueryContent script_content = 3; - map<string, TypedValue> parameters = 6; + map<string, TypedValue> parameters = 4; - bool persistent = 7; // TODO: Persistent execution / persistent results? - string execution_name = 8 [(Ydb.length).le = 1024]; - StatsMode stats_mode = 9; - map<string, string> attributes = 10 [(map_key).length.range = {min: 1, max: 100}, (length).range = {min: 1, max: 4096}]; + StatsMode stats_mode = 5; // After script execution operation finishes, TTL will start counting. // After this TTL the results will be removed from database. - google.protobuf.Duration results_ttl = 11; + google.protobuf.Duration results_ttl = 6; } enum ExecStatus { @@ -241,22 +219,20 @@ message ExecuteScriptMetadata { ExecStatus exec_status = 2; QueryContent script_content = 3; - VersionedScriptId script_id = 4; - map<string, string> attributes = 5 [(map_key).length.range = {min: 1, max: 100}, (length).range = {min: 1, max: 4096}]; - repeated ResultSetMeta result_sets_meta = 6; + repeated ResultSetMeta result_sets_meta = 4; - ExecMode exec_mode = 7; + ExecMode exec_mode = 5; // Execution statistics - Ydb.TableStats.QueryStats exec_stats = 8; + Ydb.TableStats.QueryStats exec_stats = 6; } message FetchScriptResultsRequest { - string operation_id = 5 [(Ydb.length).le = 1024]; + string operation_id = 1 [(Ydb.length).le = 1024]; - int64 result_set_id = 6; + int64 result_set_index = 2; - string fetch_token = 2 [(Ydb.length).le = 1024]; + string fetch_token = 3 [(Ydb.length).le = 1024]; int64 rows_limit = 4 [(Ydb.value) = ">= 0"]; } @@ -271,40 +247,5 @@ message FetchScriptResultsResponse { } message Script { - VersionedScriptId script_id = 1; - QueryContent script_content = 2; -} - -message SaveScriptRequest { - VersionedScriptId script_id = 1; // If specified, set new content to existing script - QueryContent script_content = 2; -} - -message SaveScriptResponse { - StatusIds.StatusCode status = 1; - repeated Ydb.Issue.IssueMessage issues = 2; - - VersionedScriptId script_id = 3; -} - -message ListScriptsRequest { - string page_token = 1 [(Ydb.length).le = 1024]; - int64 page_size = 2 [(Ydb.value) = ">= 0"]; -} - -message ListScriptsResponse { - StatusIds.StatusCode status = 1; - repeated Ydb.Issue.IssueMessage issues = 2; - - repeated Script scripts = 3; - string next_page_token = 4 [(Ydb.length).le = 1024]; -} - -message DeleteScriptRequest { - VersionedScriptId script_id = 1; -} - -message DeleteScriptResponse { - StatusIds.StatusCode status = 1; - repeated Ydb.Issue.IssueMessage issues = 2; + QueryContent script_content = 1; } diff --git a/ydb/public/sdk/cpp/client/ydb_query/client.cpp b/ydb/public/sdk/cpp/client/ydb_query/client.cpp index 8bb7ab73e78..253e14bc425 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/client.cpp +++ b/ydb/public/sdk/cpp/client/ydb_query/client.cpp @@ -72,10 +72,10 @@ public: return promise.GetFuture(); } - TAsyncFetchScriptResultsResult FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetId, const TFetchScriptResultsSettings& settings) { + TAsyncFetchScriptResultsResult FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetIndex, const TFetchScriptResultsSettings& settings) { auto request = MakeRequest<Ydb::Query::FetchScriptResultsRequest>(); request.set_operation_id(NKikimr::NOperationId::ProtoToString(operationId)); - request.set_result_set_id(resultSetId); + request.set_result_set_index(resultSetIndex); return FetchScriptResultsImpl(std::move(request), settings); } @@ -167,10 +167,10 @@ NThreading::TFuture<TScriptExecutionOperation> TQueryClient::ExecuteScript(const return Impl_->ExecuteScript(script, settings); } -TAsyncFetchScriptResultsResult TQueryClient::FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetId, +TAsyncFetchScriptResultsResult TQueryClient::FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetIndex, const TFetchScriptResultsSettings& settings) { - return Impl_->FetchScriptResults(operationId, resultSetId, settings); + return Impl_->FetchScriptResults(operationId, resultSetIndex, settings); } } // namespace NYdb::NQuery diff --git a/ydb/public/sdk/cpp/client/ydb_query/client.h b/ydb/public/sdk/cpp/client/ydb_query/client.h index e927289e2c3..7e823825e27 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/client.h +++ b/ydb/public/sdk/cpp/client/ydb_query/client.h @@ -42,7 +42,7 @@ public: NThreading::TFuture<TScriptExecutionOperation> ExecuteScript(const TString& script, const TExecuteScriptSettings& settings = TExecuteScriptSettings()); - TAsyncFetchScriptResultsResult FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetId, + TAsyncFetchScriptResultsResult FetchScriptResults(const NKikimr::NOperationId::TOperationId& operationId, int64_t resultSetIndex, const TFetchScriptResultsSettings& settings = TFetchScriptResultsSettings()); private: diff --git a/ydb/public/sdk/cpp/client/ydb_query/query.cpp b/ydb/public/sdk/cpp/client/ydb_query/query.cpp index c0d106799c8..7da774d5e72 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/query.cpp +++ b/ydb/public/sdk/cpp/client/ydb_query/query.cpp @@ -30,9 +30,6 @@ TScriptExecutionOperation::TScriptExecutionOperation(TStatus&& status, Ydb::Oper Metadata_.ScriptContent.Syntax = static_cast<ESyntax>(metadata.script_content().syntax()); Metadata_.ScriptContent.Text = metadata.script_content().text(); } - if (metadata.has_script_id()) { - Metadata_.ScriptId = TVersionedScriptId(metadata.script_id().id(), metadata.script_id().revision()); - } } } // namespace NYdb::NQuery diff --git a/ydb/public/sdk/cpp/client/ydb_query/query.h b/ydb/public/sdk/cpp/client/ydb_query/query.h index d10db38ed2c..95b9e6ccdb9 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/query.h +++ b/ydb/public/sdk/cpp/client/ydb_query/query.h @@ -133,30 +133,6 @@ struct TExecuteScriptSettings : public TOperationRequestSettings<TExecuteScriptS FLUENT_SETTING(TDuration, ResultsTtl); }; -class TVersionedScriptId { -public: - TVersionedScriptId(const TString& id, TMaybe<i64> revision = Nothing()) - : Id_(id) - , Revision_(revision) - {} - - const TString& Id() const { - return Id_; - } - - TMaybe<i64> Revision() const { - return Revision_; - } - - void SetRevision(i64 revision) { - Revision_ = revision; - } - -private: - TString Id_; - TMaybe<i64> Revision_; -}; - class TQueryContent { public: TQueryContent() = default; @@ -177,8 +153,6 @@ public: EExecStatus ExecStatus = EExecStatus::Unspecified; EExecMode ExecMode = EExecMode::Unspecified; - // Not greater than one of SavedScriptId or QueryContent is set. - std::optional<TVersionedScriptId> ScriptId; TQueryContent ScriptContent; Ydb::TableStats::QueryStats ExecStats; TVector<Ydb::Query::ResultSetMeta> ResultSetsMeta; |