Skip to content

Commit e615d9b

Browse files
authored
YQ fixed ast output for ctas (#20673)
1 parent 30b690f commit e615d9b

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

ydb/core/kqp/session_actor/kqp_query_state.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ class TKqpQueryState : public TNonCopyable {
129129
TInstant ContinueTime;
130130
NYql::TKikimrQueryDeadlines QueryDeadlines;
131131
TKqpQueryStats QueryStats;
132+
TString QueryAst;
132133
bool KeepSession = false;
133134
TIntrusiveConstPtr<NACLib::TUserToken> UserToken;
134135
TString ClientAddress;

ydb/core/kqp/session_actor/kqp_session_actor.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2033,12 +2033,14 @@ class TKqpSessionActor : public TActorBootstrapped<TKqpSessionActor> {
20332033
auto stats = QueryState->QueryStats.ToProto();
20342034
if (QueryState->GetStatsMode() >= Ydb::Table::QueryStatsCollection::STATS_COLLECTION_FULL) {
20352035
response->SetQueryPlan(SerializeAnalyzePlan(stats, QueryState->UserRequestContext->PoolId));
2036-
if (QueryState->CompileResult) {
2037-
auto preparedQuery = QueryState->CompileResult->PreparedQuery;
2038-
if (preparedQuery) {
2039-
response->SetQueryAst(preparedQuery->GetPhysicalQuery().GetQueryAst());
2036+
if (const auto compileResult = QueryState->CompileResult) {
2037+
if (const auto preparedQuery = compileResult->PreparedQuery) {
2038+
if (const auto& queryAst = preparedQuery->GetPhysicalQuery().GetQueryAst()) {
2039+
QueryState->QueryAst = queryAst;
2040+
}
20402041
}
20412042
}
2043+
response->SetQueryAst(QueryState->QueryAst);
20422044
}
20432045
response->MutableQueryStats()->Swap(&stats);
20442046
}

ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2019,17 +2019,27 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
20192019
}
20202020

20212021
void RunGenericQuery(const TString& query, TQueryClient& client, const TDriver&) {
2022-
auto result = client.ExecuteQuery(query, NYdb::NQuery::TTxControl::NoTx()).ExtractValueSync();
2022+
auto result = client.ExecuteQuery(
2023+
query,
2024+
NYdb::NQuery::TTxControl::NoTx(),
2025+
NYdb::NQuery::TExecuteQuerySettings().StatsMode(NYdb::NQuery::EStatsMode::Profile)
2026+
).ExtractValueSync();
20232027
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
2028+
UNIT_ASSERT(result.GetStats());
2029+
UNIT_ASSERT(result.GetStats()->GetAst());
20242030
}
20252031

20262032
void RunGenericScript(const TString& script, TQueryClient& client, const TDriver& driver) {
2027-
auto scriptExecutionOperation = client.ExecuteScript(script).ExtractValueSync();
2033+
auto scriptExecutionOperation = client.ExecuteScript(
2034+
script,
2035+
NYdb::NQuery::TExecuteScriptSettings().StatsMode(NYdb::NQuery::EStatsMode::Profile)
2036+
).ExtractValueSync();
20282037
UNIT_ASSERT_VALUES_EQUAL_C(scriptExecutionOperation.Status().GetStatus(), EStatus::SUCCESS, scriptExecutionOperation.Status().GetIssues().ToString());
20292038
UNIT_ASSERT(!scriptExecutionOperation.Metadata().ExecutionId.empty());
20302039

20312040
NYdb::NQuery::TScriptExecutionOperation readyOp = WaitScriptExecutionOperation(scriptExecutionOperation.Id(), driver);
20322041
UNIT_ASSERT_VALUES_EQUAL_C(readyOp.Metadata().ExecStatus, EExecStatus::Completed, readyOp.Status().GetIssues().ToOneLineString());
2042+
UNIT_ASSERT(readyOp.Metadata().ExecStats.GetAst());
20332043
}
20342044

20352045
Y_UNIT_TEST(CreateTableAsSelectFromExternalDataSourceGenericQuery) {

0 commit comments

Comments
 (0)