aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhor911 <hor911@ydb.tech>2023-03-24 11:39:53 +0300
committerhor911 <hor911@ydb.tech>2023-03-24 11:39:53 +0300
commit59df7664bbe19b75eb73a0e0c745a87b9269d0e3 (patch)
treec3b9f2f59fcedea7586d4a2e0384e6958ee324b7
parentdcf085f3d299207e41f1b9d99d8841d70e511129 (diff)
downloadydb-59df7664bbe19b75eb73a0e0c745a87b9269d0e3.tar.gz
Use StatusCode from Precomputes
-rw-r--r--ydb/core/fq/libs/actors/run_actor.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/ydb/core/fq/libs/actors/run_actor.cpp b/ydb/core/fq/libs/actors/run_actor.cpp
index dc44f752c82..6053b9c4928 100644
--- a/ydb/core/fq/libs/actors/run_actor.cpp
+++ b/ydb/core/fq/libs/actors/run_actor.cpp
@@ -1091,8 +1091,10 @@ private:
auto& result = ev->Get()->Record;
- LOG_D("Query evaluation " << NYql::NDqProto::StatusIds_StatusCode_Name(result.GetStatusCode())
- << "." << it->second.Index << " response. Issues count: " << result.IssuesSize()
+ QueryEvalStatusCode = result.GetStatusCode();
+
+ LOG_D("Query evaluation " << NYql::NDqProto::StatusIds_StatusCode_Name(QueryEvalStatusCode)
+ << ". " << it->second.Index << " response. Issues count: " << result.IssuesSize()
<< ". Rows count: " << result.GetRowsCount());
queryResult.Data = result.yson();
@@ -1100,7 +1102,7 @@ private:
TIssues issues;
IssuesFromMessage(result.GetIssues(), issues);
- if (result.GetStatusCode() == NYql::NDqProto::StatusIds::INTERNAL_ERROR && !Params.Config.GetCommon().GetKeepInternalErrors()) {
+ if (QueryEvalStatusCode == NYql::NDqProto::StatusIds::INTERNAL_ERROR && !Params.Config.GetCommon().GetKeepInternalErrors()) {
auto issue = WrapInternalIssues(issues);
issues.Clear();
issues.AddIssue(issue);
@@ -1737,6 +1739,7 @@ private:
AddTableBindingsFromBindings(Params.Bindings, YqConnections, sqlSettings);
} catch (const std::exception& e) {
Issues.AddIssue(ExceptionToIssue(e));
+ QueryEvalStatusCode = NYql::NDqProto::StatusIds::INTERNAL_ERROR;
FinishProgram(TProgram::TStatus::Error);
return;
}
@@ -1798,11 +1801,13 @@ private:
FillGraphMemoryInfo(graphParams);
}
} else {
- TString abortMessage = message;
- if (abortMessage == "") {
- abortMessage = TStringBuilder() << "Run query failed: " << ToString(status);
+ Issues.AddIssues(issues);
+ if (message) {
+ Issues.AddIssue(TIssue(message));
}
- Abort(abortMessage, FederatedQuery::QueryMeta::FAILED, issues);
+ ResignQuery(
+ QueryEvalStatusCode != NYql::NDqProto::StatusIds::UNSPECIFIED ? QueryEvalStatusCode : NYql::NDqProto::StatusIds::ABORTED
+ );
}
}
@@ -2020,6 +2025,7 @@ private:
bool FinalizingStatusIsWritten = false;
bool QueryResponseArrived = false;
FederatedQuery::QueryMeta::ComputeStatus FinalQueryStatus = FederatedQuery::QueryMeta::COMPUTE_STATUS_UNSPECIFIED; // Status that will be assigned to query after it finishes.
+ NYql::NDqProto::StatusIds::StatusCode QueryEvalStatusCode = NYql::NDqProto::StatusIds::UNSPECIFIED;
// Cookies for pings
enum : ui64 {