summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhcpp <[email protected]>2023-08-17 17:37:12 +0300
committerhcpp <[email protected]>2023-08-17 18:22:21 +0300
commit609fcbed594087e35e347f1d03918d12436be2e6 (patch)
tree1663dabfef4826e4033386cb5a6518b8f25d6a2b
parent3d7be3b7d4567fa3615dc4cf762a31fe9335143e (diff)
plan and ast have been moved to fq from compute
-rw-r--r--ydb/core/fq/libs/compute/ydb/events/events.h4
-rw-r--r--ydb/core/fq/libs/compute/ydb/status_tracker_actor.cpp7
-rw-r--r--ydb/core/fq/libs/compute/ydb/ydb_connector_actor.cpp3
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);
}