aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraneporada <aneporada@ydb.tech>2023-09-21 18:07:42 +0300
committeraneporada <aneporada@ydb.tech>2023-09-21 19:08:13 +0300
commitb0d4ff9bdc7a22fb6a1622dbf6d379c2aafbdaf0 (patch)
tree6455ff035533f4280f5c5098ff577c772632593b
parentce310ac578df8a66df11a31f4bcc3bfeb88cd203 (diff)
downloadydb-b0d4ff9bdc7a22fb6a1622dbf6d379c2aafbdaf0.tar.gz
Fix wrong ensure in WideFilter rewrite to blocks
-rw-r--r--ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp5
1 files changed, 2 insertions, 3 deletions
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 4cffdf68f09..9b738123c65 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
@@ -5352,9 +5352,6 @@ TExprNode::TPtr OptimizeWideFilterBlocks(const TExprNode::TPtr& node, TExprConte
.Seal()
.Build();
- const size_t blockOutputs = blockLambda->ChildrenSize() - 2; // last column is a block count
- YQL_ENSURE(blockOutputs > multiInputType->GetSize());
-
if (auto it = rewritePositions.find(lambda->Child(1)); it != rewritePositions.end()) {
// lambda is block-friendly
YQL_ENSURE(it->second == multiInputType->GetSize(), "Block filter column must follow original input columns");
@@ -5405,6 +5402,8 @@ TExprNode::TPtr OptimizeWideFilterBlocks(const TExprNode::TPtr& node, TExprConte
.Build();
}
+ YQL_ENSURE(blockLambda->ChildrenSize() > 1);
+ const size_t blockOutputs = blockLambda->ChildrenSize() - 2; // last column is a block count
TExprNode::TListType allArgs;
for (size_t i = 0; i < blockOutputs; ++i) {
allArgs.push_back(ctx.NewArgument(node->Pos(), "arg" + ToString(i)));