aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorudovichenko-r <udovichenko-r@yandex-team.ru>2022-02-16 15:17:34 +0300
committerudovichenko-r <udovichenko-r@yandex-team.ru>2022-02-16 15:17:34 +0300
commit7ac7666495e3f3ab80bd93ed6bf29755d90b54c4 (patch)
tree1412044dfd8b636549522210769f3ad210a3ec3c
parent69a6fb6759cff32d6f1f577f908ead97c8af2404 (diff)
downloadydb-7ac7666495e3f3ab80bd93ed6bf29755d90b54c4.tar.gz
[yql] Move SqlIn over sorted optimizer to simple2
YQL-14369 ref:5df7a370715b18fba3511d4ddbc0a0d95cad6d94
-rw-r--r--ydb/library/yql/core/common_opt/yql_co_simple1.cpp5
-rw-r--r--ydb/library/yql/core/common_opt/yql_co_simple2.cpp10
2 files changed, 10 insertions, 5 deletions
diff --git a/ydb/library/yql/core/common_opt/yql_co_simple1.cpp b/ydb/library/yql/core/common_opt/yql_co_simple1.cpp
index 7a7fe755452..8a66d1bd60b 100644
--- a/ydb/library/yql/core/common_opt/yql_co_simple1.cpp
+++ b/ydb/library/yql/core/common_opt/yql_co_simple1.cpp
@@ -3713,11 +3713,6 @@ void RegisterCoSimpleCallables1(TCallableOptimizerMap& map) {
}
}
- if (collectionKind == ETypeAnnotationKind::List && collection->GetConstraint<TSortedConstraintNode>()) {
- YQL_CLOG(DEBUG, Core) << "IN over sorted collection";
- return ctx.ChangeChild(*node, 0, ctx.NewCallable(collection->Pos(), "Unordered", {collection}));
- }
-
return node;
};
diff --git a/ydb/library/yql/core/common_opt/yql_co_simple2.cpp b/ydb/library/yql/core/common_opt/yql_co_simple2.cpp
index 6d59989b6a4..11839432a64 100644
--- a/ydb/library/yql/core/common_opt/yql_co_simple2.cpp
+++ b/ydb/library/yql/core/common_opt/yql_co_simple2.cpp
@@ -488,6 +488,16 @@ void RegisterCoSimpleCallables2(TCallableOptimizerMap& map) {
map["AggrNotEquals"] = map["AggrLess"] = map["AggrGreater"] = std::bind(&CheckCompareSame<false, true>, _1, _2);
map["IfPresent"] = std::bind(&IfPresentSubsetFields, _1, _2, _3);
+
+ map["SqlIn"] = [](const TExprNode::TPtr& node, TExprContext& ctx, TOptimizeContext&) {
+ auto collection = node->HeadPtr();
+ if (collection->GetTypeAnn()->GetKind() == ETypeAnnotationKind::List && collection->GetConstraint<TSortedConstraintNode>()) {
+ YQL_CLOG(DEBUG, Core) << "IN over sorted collection";
+ return ctx.ChangeChild(*node, 0, ctx.NewCallable(collection->Pos(), "Unordered", {collection}));
+ }
+
+ return node;
+ };
}
}