aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Efimov <xeno@prnwatch.com>2022-06-17 17:24:52 +0300
committerAlexey Efimov <xeno@prnwatch.com>2022-06-17 17:24:52 +0300
commit745f224f5f97f29a860704a239050fded396df3c (patch)
treedcbbf4d58c981f7402cd4cdc419da29831162a6a
parentaeaf52b0e1d666cf4138a23fccac7408b5afcb31 (diff)
downloadydb-745f224f5f97f29a860704a239050fded396df3c.tar.gz
give preference to more important errors KIKIMR-14997
ref:78c2881b4ffd435510cbd908f217277a46540cf4
-rw-r--r--ydb/core/viewer/json_query.h15
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);
}