From 8c51114c869c8942266f8c6d9480abb69e62c4f7 Mon Sep 17 00:00:00 2001 From: uzhastik Date: Mon, 5 Feb 2024 12:54:45 +0300 Subject: [PATCH] fix coverity issues: evaluation order violations (#1556) * fix coverity issues * fix build * fix build * fix build again --- ydb/library/yql/ast/yql_constraint.cpp | 3 ++- ydb/library/yql/core/common_opt/yql_co_simple1.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ydb/library/yql/ast/yql_constraint.cpp b/ydb/library/yql/ast/yql_constraint.cpp index 57c9991be59e..48201346529e 100644 --- a/ydb/library/yql/ast/yql_constraint.cpp +++ b/ydb/library/yql/ast/yql_constraint.cpp @@ -542,7 +542,8 @@ TSortedConstraintNode::DoGetSimplifiedForType(const TTypeAnnotationNode& type, T ++it; if (ssize_t(GetElementsCount(subType)) == std::distance(from, it)) { - *from++ = std::make_pair(TPartOfConstraintBase::TSetType{std::move(prefix)}, from->second); + *from = std::make_pair(TPartOfConstraintBase::TSetType{std::move(prefix)}, from->second); + ++from; it = content.erase(from, it); changed = setChanged = true; } diff --git a/ydb/library/yql/core/common_opt/yql_co_simple1.cpp b/ydb/library/yql/core/common_opt/yql_co_simple1.cpp index 490a089f5c1e..76bc6112fa12 100644 --- a/ydb/library/yql/core/common_opt/yql_co_simple1.cpp +++ b/ydb/library/yql/core/common_opt/yql_co_simple1.cpp @@ -3087,8 +3087,8 @@ std::unordered_set GetUselessSortedJoinInputs(const TCoEquiJoin& equiJoin) if (!joinTree->Head().IsAtom("Cross")) { std::unordered_map tableJoinKeys; for (const auto keys : {joinTree->Child(3), joinTree->Child(4)}) - for (ui32 i = 0U; i < keys->ChildrenSize(); ++i) - tableJoinKeys[keys->Child(i)->Content()].insert_unique(TPartOfConstraintBase::TPathType(1U, keys->Child(++i)->Content())); + for (ui32 i = 0U; i < keys->ChildrenSize(); i += 2) + tableJoinKeys[keys->Child(i)->Content()].insert_unique(TPartOfConstraintBase::TPathType(1U, keys->Child(i + 1)->Content())); for (const auto& [label, joinKeys]: tableJoinKeys) { if (const auto it = sorteds.find(label); sorteds.cend() != it) {