diff options
| author | a-romanov <[email protected]> | 2023-01-12 19:58:17 +0300 |
|---|---|---|
| committer | a-romanov <[email protected]> | 2023-01-12 19:58:17 +0300 |
| commit | 5204dcae729d33a7269a03a55b07b81f9a5910f5 (patch) | |
| tree | 6530220e22718f5ee092133ef84c0030c374c065 | |
| parent | 4229f87c89bfb36eded667ec1e64f41b1aeb88b9 (diff) | |
Cosmetic fix.
| -rw-r--r-- | ydb/library/yql/ast/yql_expr.h | 7 | ||||
| -rw-r--r-- | ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp | 8 | ||||
| -rw-r--r-- | ydb/library/yql/core/yql_expr_type_annotation.cpp | 14 |
3 files changed, 12 insertions, 17 deletions
diff --git a/ydb/library/yql/ast/yql_expr.h b/ydb/library/yql/ast/yql_expr.h index c22cc99a421..8d237ac3be3 100644 --- a/ydb/library/yql/ast/yql_expr.h +++ b/ydb/library/yql/ast/yql_expr.h @@ -236,7 +236,7 @@ public: return kind == ETypeAnnotationKind::Optional || kind == ETypeAnnotationKind::Null || kind == ETypeAnnotationKind::Pg; } - bool IsCanBeEmpty() const { + bool CanBeEmpty() const { switch (Kind) { case ETypeAnnotationKind::Pg: case ETypeAnnotationKind::Optional: @@ -261,11 +261,6 @@ public: return false; } - bool IsContainer() const { - auto kind = GetKind(); - return kind == ETypeAnnotationKind::Optional || kind == ETypeAnnotationKind::Null || kind == ETypeAnnotationKind::Pg; - } - bool IsBlockOrScalar() const { auto kind = GetKind(); return kind == ETypeAnnotationKind::Block || kind == ETypeAnnotationKind::Scalar; diff --git a/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp b/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp index 5fab3fcbc4d..868cafda8f2 100644 --- a/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp +++ b/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp @@ -1275,7 +1275,7 @@ TExprNode::TPtr ExpandCastOverOptionalTuple(const TExprNode::TPtr& input, TExprC TExprNode::TListType items; items.reserve(sourceItems.size() - targetItems.size()); for (auto i = targetItems.size(); i < sourceItems.size(); ++i) { - if (sourceItems[i]->IsCanBeEmpty()) { + if (sourceItems[i]->CanBeEmpty()) { items.emplace_back(ctx.Builder(input->Pos()) .Callable(sourceItems[i]->GetKind() == ETypeAnnotationKind::Optional ? "Exists" : "HasItems") .Callable(0, "Nth") @@ -1386,7 +1386,7 @@ TExprNode::TPtr ExpandCastOverOptionalStruct(const TExprNode::TPtr& input, TExpr TExprNode::TListType items; items.reserve(sourceNames.size()); for (const auto& skipped : sourceNames) { - if (skipped.second->IsCanBeEmpty()) { + if (skipped.second->CanBeEmpty()) { items.emplace_back(ctx.Builder(input->Pos()) .Callable(skipped.second->GetKind() == ETypeAnnotationKind::Optional ? "Exists" : "HasItems") .Callable(0, "Member") @@ -1562,7 +1562,7 @@ TExprNode::TPtr ExpandCast(const TExprNode::TPtr& input, TExprContext& ctx) { case ETypeAnnotationKind::Variant: return ExpandCastOverOptionalVariant<Strong>(input, ctx); default: break; } - } else if (targetItemType->IsNullOrEmpty() && source->IsCanBeEmpty()) { + } else if (targetItemType->IsNullOrEmpty() && source->CanBeEmpty()) { YQL_CLOG(DEBUG, CorePeepHole) << "Expand " << input->Content() << " to " << *targetItemType << " as check exists."; return ctx.Builder(input->Pos()) .Callable("If") @@ -1603,7 +1603,7 @@ TExprNode::TPtr ExpandCast(const TExprNode::TPtr& input, TExprContext& ctx) { .Seal().Build(); } } else if (source->IsNullOrEmpty()) { - if (target->IsNullOrEmpty() || target->IsCanBeEmpty()) { + if (target->IsNullOrEmpty() || target->CanBeEmpty()) { YQL_CLOG(DEBUG, CorePeepHole) << "Expand " << input->Content() << " as empty container."; return MakeEmptyContainer(input->Head().Pos(), *target, ctx); } diff --git a/ydb/library/yql/core/yql_expr_type_annotation.cpp b/ydb/library/yql/core/yql_expr_type_annotation.cpp index 00b0ad02504..dde165ad071 100644 --- a/ydb/library/yql/core/yql_expr_type_annotation.cpp +++ b/ydb/library/yql/core/yql_expr_type_annotation.cpp @@ -1010,12 +1010,12 @@ NUdf::TCastResultOptions CastResult(const TTupleExprType* source, const TTupleEx for (size_t i = 0U; i < std::max(sItems.size(), tItems.size()); ++i) { if (i >= sItems.size()) { if constexpr (AllOrAnyElements) { - if (!(tItems[i]->IsNullOrEmpty() || tItems[i]->IsCanBeEmpty())) + if (!(tItems[i]->IsNullOrEmpty() || tItems[i]->CanBeEmpty())) return Strong ? NUdf::ECastOptions::Impossible : NUdf::ECastOptions::MayFail; } } else if (i >= tItems.size()) { if (!sItems[i]->IsNullOrEmpty()) { - if (sItems[i]->IsCanBeEmpty()) { + if (sItems[i]->CanBeEmpty()) { result |= Strong ? NUdf::ECastOptions::MayFail : NUdf::ECastOptions::MayLoseData; } else { if constexpr (Strong && AllOrAnyElements) { @@ -1046,12 +1046,12 @@ NUdf::TCastResultOptions CastResult(const TStructExprType* source, const TStruct for (const auto& field : fields) { if (!field.second.front()) { if constexpr (AllOrAnyMembers) { - if (!(field.second.back()->IsNullOrEmpty() || field.second.back()->IsCanBeEmpty())) + if (!(field.second.back()->IsNullOrEmpty() || field.second.back()->CanBeEmpty())) return Strong ? NUdf::ECastOptions::Impossible : NUdf::ECastOptions::MayFail; } } else if (!field.second.back()) { if (!field.second.front()->IsNullOrEmpty()) { - if (field.second.front()->IsCanBeEmpty()) { + if (field.second.front()->CanBeEmpty()) { result |= Strong ? NUdf::ECastOptions::MayFail : NUdf::ECastOptions::MayLoseData; } else { if constexpr (Strong && AllOrAnyMembers) { @@ -1505,7 +1505,7 @@ NUdf::TCastResultOptions CastResult(const TTypeAnnotationNode* source, const TTy default: break; } } else if (source->IsNullOrEmpty()) { - if (target->IsNullOrEmpty() || target->IsCanBeEmpty()) + if (target->IsNullOrEmpty() || target->CanBeEmpty()) return NUdf::ECastOptions::Complete; else if constexpr (Strong) return NUdf::ECastOptions::Impossible; @@ -1515,9 +1515,9 @@ NUdf::TCastResultOptions CastResult(const TTypeAnnotationNode* source, const TTy if (source->IsNullOrEmpty()) return NUdf::ECastOptions::Complete; else if constexpr (Strong) - return source->IsCanBeEmpty() ? NUdf::ECastOptions::MayFail : NUdf::ECastOptions::Impossible; + return source->CanBeEmpty() ? NUdf::ECastOptions::MayFail : NUdf::ECastOptions::Impossible; else - return source->IsCanBeEmpty() ? NUdf::ECastOptions::MayLoseData : NUdf::ECastOptions::AnywayLoseData; + return source->CanBeEmpty() ? NUdf::ECastOptions::MayLoseData : NUdf::ECastOptions::AnywayLoseData; } else if (tKind == ETypeAnnotationKind::Optional) { return ReduceCastResult<Strong>(CastResult<Strong>(source, target->Cast<TOptionalExprType>()->GetItemType())); } else if (sKind == ETypeAnnotationKind::Optional) { |
