diff options
author | udovichenko-r <[email protected]> | 2025-08-21 16:27:18 +0300 |
---|---|---|
committer | udovichenko-r <[email protected]> | 2025-08-21 17:07:33 +0300 |
commit | 7fcf0e3315a1e498f8de24f2eeec8c7409182d19 (patch) | |
tree | 3a3714ab1c44a2a24dcd059bbacad7b39630b71e /yql/essentials/ast/yql_constraint.cpp | |
parent | 491fbcb0db8a5ea03313b257554eb49730e86d20 (diff) |
Fix Sorted constraint for UnionMerge when the one of inputs is empty
commit_hash:1a6c8ea1c65a438f8801f4f71f6d1bcb15a95c81
Diffstat (limited to 'yql/essentials/ast/yql_constraint.cpp')
-rw-r--r-- | yql/essentials/ast/yql_constraint.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/yql/essentials/ast/yql_constraint.cpp b/yql/essentials/ast/yql_constraint.cpp index 54ef1f44916..b19bf96c98a 100644 --- a/yql/essentials/ast/yql_constraint.cpp +++ b/yql/essentials/ast/yql_constraint.cpp @@ -444,7 +444,9 @@ const TSortedConstraintNode* TSortedConstraintNode::MakeCommon(const std::vector std::optional<TContainerType> content; for (size_t i = 0U; i < constraints.size(); ++i) { - if (const auto sort = constraints[i]->GetConstraint<TSortedConstraintNode>()) { + if (constraints[i]->GetConstraint<TEmptyConstraintNode>()) { + ; // just ignore this input with any other constraints + } else if (const auto sort = constraints[i]->GetConstraint<TSortedConstraintNode>()) { const auto& nextContent = sort->GetContent(); if (content) { const auto size = std::min(content->size(), nextContent.size()); @@ -466,7 +468,7 @@ const TSortedConstraintNode* TSortedConstraintNode::MakeCommon(const std::vector } else { content = nextContent; } - } else if (!constraints[i]->GetConstraint<TEmptyConstraintNode>()) { + } else { content.reset(); break; } |