summaryrefslogtreecommitdiffstats
path: root/yql/essentials/ast/yql_constraint.cpp
diff options
context:
space:
mode:
authorudovichenko-r <[email protected]>2025-08-21 16:27:18 +0300
committerudovichenko-r <[email protected]>2025-08-21 17:07:33 +0300
commit7fcf0e3315a1e498f8de24f2eeec8c7409182d19 (patch)
tree3a3714ab1c44a2a24dcd059bbacad7b39630b71e /yql/essentials/ast/yql_constraint.cpp
parent491fbcb0db8a5ea03313b257554eb49730e86d20 (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.cpp6
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;
}