diff options
author | hcpp <[email protected]> | 2023-08-17 17:37:12 +0300 |
---|---|---|
committer | hcpp <[email protected]> | 2023-08-17 18:22:21 +0300 |
commit | 609fcbed594087e35e347f1d03918d12436be2e6 (patch) | |
tree | 1663dabfef4826e4033386cb5a6518b8f25d6a2b | |
parent | 3d7be3b7d4567fa3615dc4cf762a31fe9335143e (diff) |
plan and ast have been moved to fq from compute
-rw-r--r-- | ydb/core/fq/libs/compute/ydb/events/events.h | 4 | ||||
-rw-r--r-- | ydb/core/fq/libs/compute/ydb/status_tracker_actor.cpp | 7 | ||||
-rw-r--r-- | ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp | 3 |
3 files changed, 12 insertions, 2 deletions
diff --git a/ydb/core/fq/libs/compute/ydb/events/events.h b/ydb/core/fq/libs/compute/ydb/events/events.h index 2358de0e3b7..c6100a24c66 100644 --- a/ydb/core/fq/libs/compute/ydb/events/events.h +++ b/ydb/core/fq/libs/compute/ydb/events/events.h @@ -101,15 +101,17 @@ struct TEvYdbCompute { , Status(status) {} - TEvGetOperationResponse(NYdb::NQuery::EExecStatus execStatus, const TVector<Ydb::Query::ResultSetMeta>& resultSetsMeta, NYql::TIssues issues) + TEvGetOperationResponse(NYdb::NQuery::EExecStatus execStatus, const TVector<Ydb::Query::ResultSetMeta>& resultSetsMeta, const Ydb::TableStats::QueryStats& queryStats, NYql::TIssues issues) : ExecStatus(execStatus) , ResultSetsMeta(resultSetsMeta) + , QueryStats(queryStats) , Issues(std::move(issues)) , Status(NYdb::EStatus::SUCCESS) {} NYdb::NQuery::EExecStatus ExecStatus = NYdb::NQuery::EExecStatus::Unspecified; TVector<Ydb::Query::ResultSetMeta> ResultSetsMeta; + Ydb::TableStats::QueryStats QueryStats; NYql::TIssues Issues; NYdb::EStatus Status; }; diff --git a/ydb/core/fq/libs/compute/ydb/status_tracker_actor.cpp b/ydb/core/fq/libs/compute/ydb/status_tracker_actor.cpp index 1d436e4758c..3c55f394471 100644 --- a/ydb/core/fq/libs/compute/ydb/status_tracker_actor.cpp +++ b/ydb/core/fq/libs/compute/ydb/status_tracker_actor.cpp @@ -126,12 +126,14 @@ public: Issues = response.Issues; Status = response.Status; ExecStatus = response.ExecStatus; + QueryStats = response.QueryStats; Failed(); break; case NYdb::NQuery::EExecStatus::Completed: Issues = response.Issues; Status = response.Status; ExecStatus = response.ExecStatus; + QueryStats = response.QueryStats; Complete(); break; } @@ -148,6 +150,8 @@ public: Fq::Private::PingTaskRequest pingTaskRequest; NYql::IssuesToMessage(Issues, pingTaskRequest.mutable_issues()); pingTaskRequest.set_status(::FederatedQuery::QueryMeta::FAILING); + pingTaskRequest.set_ast(QueryStats.query_ast()); + pingTaskRequest.set_plan(QueryStats.query_plan()); Send(Pinger, new TEvents::TEvForwardPingRequest(pingTaskRequest)); } @@ -158,6 +162,8 @@ public: Fq::Private::PingTaskRequest pingTaskRequest; NYql::IssuesToMessage(Issues, pingTaskRequest.mutable_issues()); pingTaskRequest.set_status(::FederatedQuery::QueryMeta::COMPLETING); + pingTaskRequest.set_ast(QueryStats.query_ast()); + pingTaskRequest.set_plan(QueryStats.query_plan()); Send(Pinger, new TEvents::TEvForwardPingRequest(pingTaskRequest)); } @@ -172,6 +178,7 @@ private: NYql::TIssues Issues; NYdb::EStatus Status = NYdb::EStatus::SUCCESS; NYdb::NQuery::EExecStatus ExecStatus = NYdb::NQuery::EExecStatus::Unspecified; + Ydb::TableStats::QueryStats QueryStats; }; std::unique_ptr<NActors::IActor> CreateStatusTrackerActor(const TRunActorParams& params, diff --git a/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp b/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp index 01197e381e1..f5d746b98ce 100644 --- a/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp +++ b/ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp @@ -49,6 +49,7 @@ public: settings.OperationTimeout(event.OperationTimeout); settings.Syntax(event.Syntax); settings.ExecMode(event.ExecMode); + settings.StatsMode(Ydb::Query::StatsMode::STATS_MODE_FULL); QueryClient ->ExecuteScript(event.Sql, settings) .Apply([actorSystem = NActors::TActivationContext::ActorSystem(), recipient = ev->Sender, cookie = ev->Cookie](auto future) { @@ -72,7 +73,7 @@ public: try { auto response = future.ExtractValueSync(); if (response.Status().IsSuccess()) { - actorSystem->Send(recipient, new TEvYdbCompute::TEvGetOperationResponse(response.Metadata().ExecStatus, response.Metadata().ResultSetsMeta, response.Status().GetIssues()), 0, cookie); + actorSystem->Send(recipient, new TEvYdbCompute::TEvGetOperationResponse(response.Metadata().ExecStatus, response.Metadata().ResultSetsMeta, response.Metadata().ExecStats, response.Status().GetIssues()), 0, cookie); } else { actorSystem->Send(recipient, new TEvYdbCompute::TEvGetOperationResponse(response.Status().GetIssues(), response.Status().GetStatus()), 0, cookie); } |