summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora-romanov <[email protected]>2023-04-13 12:16:17 +0300
committera-romanov <[email protected]>2023-04-13 12:16:17 +0300
commit3316c0db7951eddadcca1eb0e738209b1ec5a987 (patch)
treecda0b0b78de8cc6b5810e40a8bf3d706909e61e5
parentb0bc9f0d82bece5b1b71140ff63687cc4c7d4607 (diff)
YQL-15435 Drop Unique from Condense.
- Почему? - Патамушта: https://yql.yandex-team.ru/Operations/ZDd7X7hhjHM5TEKuHydr9Mt0BlTL_iovcQR8h1m9xBg=
-rw-r--r--ydb/library/yql/core/yql_expr_constraint.cpp46
1 files changed, 0 insertions, 46 deletions
diff --git a/ydb/library/yql/core/yql_expr_constraint.cpp b/ydb/library/yql/core/yql_expr_constraint.cpp
index c073dbd2a1e..1aae5a894ba 100644
--- a/ydb/library/yql/core/yql_expr_constraint.cpp
+++ b/ydb/library/yql/core/yql_expr_constraint.cpp
@@ -2598,14 +2598,6 @@ private:
const auto initState = input->Child(1);
argsConstraints.emplace_back(initState->GetAllConstraints());
- argsConstraints.back().erase(
- std::remove_if(
- argsConstraints.back().begin(),
- argsConstraints.back().end(),
- [](const TConstraintNode* c) { return c->GetName() == TEmptyConstraintNode::Name(); }
- ),
- argsConstraints.back().cend()
- );
if (const auto status = UpdateLambdaConstraints(input->ChildRef(2), ctx, argsConstraints)
.Combine(UpdateLambdaConstraints(input->TailRef(), ctx, argsConstraints)); status != TStatus::Ok) {
@@ -2623,44 +2615,6 @@ private:
}
}
- if (const auto switchLambda = input->Child(2); switchLambda->Tail().IsCallable(TCoBool::CallableName()) && IsFalse(switchLambda->Tail().Head().Content())) {
- if (const auto& fields = GetAllItemTypeFields(*input->GetTypeAnn(), ctx); !fields.empty()) {
- TUniqueConstraintNode::TFullSetType sets;
- sets.reserve(fields.size());
- for (const auto& field: fields)
- sets.insert_unique(TUniqueConstraintNode::TSetType{TConstraintNode::TPathType(1U, field)});
- input->AddConstraint(ctx.MakeConstraint<TDistinctConstraintNode>(TDistinctConstraintNode::TFullSetType(sets)));
- input->AddConstraint(ctx.MakeConstraint<TUniqueConstraintNode>(std::move(sets)));
- }
- } else {
- TVector<TStringBuf> groupByKeys;
- if (const auto groupBy = switchLambda->GetConstraint<TGroupByConstraintNode>()) {
- groupByKeys.assign(groupBy->GetColumns().begin(), groupBy->GetColumns().end());
- } else {
- ExtractOnlySimpleKeys(*switchLambda, groupByKeys);
- }
-
- if (!groupByKeys.empty() && lambdaPassthrough) {
- const auto& mapping = lambdaPassthrough->GetReverseMapping();
- std::vector<std::string_view> uniqColumns;
- for (auto key: groupByKeys) {
- auto range = mapping.equal_range(key);
- if (range.first != range.second) {
- for (auto i = range.first; i != range.second; ++i) {
- uniqColumns.emplace_back(i->second);
- }
- } else {
- uniqColumns.clear();
- break;
- }
- }
- if (!uniqColumns.empty()) {
- input->AddConstraint(ctx.MakeConstraint<TUniqueConstraintNode>(uniqColumns));
- input->AddConstraint(ctx.MakeConstraint<TDistinctConstraintNode>(uniqColumns));
- }
- }
- }
-
return FromFirst<TEmptyConstraintNode>(input, output, ctx);
}