aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora-romanov <Anton.Romanov@ydb.tech>2023-04-04 19:04:18 +0300
committera-romanov <Anton.Romanov@ydb.tech>2023-04-04 19:04:18 +0300
commiteacce0097cb55d01d55c0da863f59edd2d9f0d1f (patch)
treea11e029ebd1b4afb4bb7a2f51f5b7871336d0191
parentaef659b030e121f88e0f2f7d72ed739880cedb9c (diff)
downloadydb-eacce0097cb55d01d55c0da863f59edd2d9f0d1f.tar.gz
YQL-8971 YQL-15555 Fix constraints for EquiJoin with renames.
-rw-r--r--ydb/library/yql/core/yql_expr_constraint.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/ydb/library/yql/core/yql_expr_constraint.cpp b/ydb/library/yql/core/yql_expr_constraint.cpp
index d0db56f85de..025b503c4f5 100644
--- a/ydb/library/yql/core/yql_expr_constraint.cpp
+++ b/ydb/library/yql/core/yql_expr_constraint.cpp
@@ -523,6 +523,12 @@ private:
input->AddConstraint(filtered);
}
}
+
+ if (const auto part = input->Head().GetConstraint<TPartOfDistinctConstraintNode>()) {
+ if (const auto filtered = part->FilterFields(ctx, filter)) {
+ input->AddConstraint(filtered);
+ }
+ }
}
return TStatus::Ok;
@@ -2286,7 +2292,9 @@ private:
return {};
const auto it = renames.find(path.front());
- if (renames.cend() == it || it->second.empty())
+ if (renames.cend() == it)
+ return {path};
+ if (it->second.empty())
return {};
std::vector<TConstraintNode::TPathType> res(it->second.size());