diff options
author | a-romanov <[email protected]> | 2023-04-13 12:16:17 +0300 |
---|---|---|
committer | a-romanov <[email protected]> | 2023-04-13 12:16:17 +0300 |
commit | 3316c0db7951eddadcca1eb0e738209b1ec5a987 (patch) | |
tree | cda0b0b78de8cc6b5810e40a8bf3d706909e61e5 | |
parent | b0bc9f0d82bece5b1b71140ff63687cc4c7d4607 (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.cpp | 46 |
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); } |