diff options
author | Alexey Efimov <xeno@prnwatch.com> | 2022-06-17 17:24:52 +0300 |
---|---|---|
committer | Alexey Efimov <xeno@prnwatch.com> | 2022-06-17 17:24:52 +0300 |
commit | 745f224f5f97f29a860704a239050fded396df3c (patch) | |
tree | dcbbf4d58c981f7402cd4cdc419da29831162a6a | |
parent | aeaf52b0e1d666cf4138a23fccac7408b5afcb31 (diff) | |
download | ydb-745f224f5f97f29a860704a239050fded396df3c.tar.gz |
give preference to more important errors KIKIMR-14997
ref:78c2881b4ffd435510cbd908f217277a46540cf4
-rw-r--r-- | ydb/core/viewer/json_query.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/ydb/core/viewer/json_query.h b/ydb/core/viewer/json_query.h index 13df8be977..bb07dcc521 100644 --- a/ydb/core/viewer/json_query.h +++ b/ydb/core/viewer/json_query.h @@ -274,19 +274,22 @@ private: NJson::TJsonValue response; NJson::TJsonValue& jsonIssues = response["issues"]; - for (const auto& queryIssue : record.GetResponse().GetQueryIssues()) { - NJson::TJsonValue& issue = jsonIssues.AppendValue({}); - NProtobufJson::Proto2Json(queryIssue, issue); - } // find first deepest error - const google::protobuf::RepeatedPtrField<Ydb::Issue::IssueMessage>* protoIssues = &(record.GetResponse().GetQueryIssues()); + google::protobuf::RepeatedPtrField<Ydb::Issue::IssueMessage>* protoIssues = record.MutableResponse()->MutableQueryIssues(); + std::stable_sort(protoIssues->begin(), protoIssues->end(), [](const Ydb::Issue::IssueMessage& a, const Ydb::Issue::IssueMessage& b) -> bool { + return a.severity() < b.severity(); + }); while (protoIssues->size() > 0 && (*protoIssues)[0].issuesSize() > 0) { - protoIssues = &((*protoIssues)[0].issues()); + protoIssues = (*protoIssues)[0].mutable_issues(); } if (protoIssues->size() > 0) { const Ydb::Issue::IssueMessage& issue = (*protoIssues)[0]; NProtobufJson::Proto2Json(issue, response["error"]); } + for (const auto& queryIssue : record.GetResponse().GetQueryIssues()) { + NJson::TJsonValue& issue = jsonIssues.AppendValue({}); + NProtobufJson::Proto2Json(queryIssue, issue); + } out << NJson::WriteJson(response, false); } |