Skip to content

Commit 0f0f3bc

Browse files
authored
Fix FilterPushdownEnableMultiusage on dependent predicates (#8033)
1 parent 757c395 commit 0f0f3bc

File tree

7 files changed

+82
-0
lines changed

7 files changed

+82
-0
lines changed

ydb/library/yql/core/common_opt/yql_co_finalizers.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ void FilterPushdownWithMultiusage(const TExprNode::TPtr& node, TNodeOnNodeOwnedM
9494

9595
TCoFlatMapBase parentFlatMap(parent);
9696
if (auto cond = parentFlatMap.Lambda().Body().Maybe<TCoConditionalValueBase>()) {
97+
if (IsDepended(parentFlatMap.Lambda().Ref(), *node)) {
98+
return;
99+
}
97100
likelyCount += bool(cond.Cast().Predicate().Maybe<TCoLikely>());
98101
auto pos = cond.Cast().Predicate().Pos();
99102
parentFilterLambdas.push_back(ctx.NewLambda(pos,

ydb/library/yql/tests/sql/dq_file/part2/canondata/result.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1978,6 +1978,28 @@
19781978
}
19791979
],
19801980
"test.test[optimizers-test_fuse_map_take-default.txt-Results]": [],
1981+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Analyze]": [
1982+
{
1983+
"checksum": "ffabf5d4f7f9ae1818a52a55257cba6b",
1984+
"size": 6017,
1985+
"uri": "https://{canondata_backend}/1942671/c9c83131b391b0a13b103155f61dd4f9a78f6ce6/resource.tar.gz#test.test_optimizers-yql-18733_no_filter_multiusage_pushdown--Analyze_/plan.txt"
1986+
}
1987+
],
1988+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Debug]": [
1989+
{
1990+
"checksum": "1ab625c1f050d16d1e0cf2dfab9aabd8",
1991+
"size": 2631,
1992+
"uri": "https://{canondata_backend}/1942671/c9c83131b391b0a13b103155f61dd4f9a78f6ce6/resource.tar.gz#test.test_optimizers-yql-18733_no_filter_multiusage_pushdown--Debug_/opt.yql_patched"
1993+
}
1994+
],
1995+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Plan]": [
1996+
{
1997+
"checksum": "ffabf5d4f7f9ae1818a52a55257cba6b",
1998+
"size": 6017,
1999+
"uri": "https://{canondata_backend}/1942671/c9c83131b391b0a13b103155f61dd4f9a78f6ce6/resource.tar.gz#test.test_optimizers-yql-18733_no_filter_multiusage_pushdown--Plan_/plan.txt"
2000+
}
2001+
],
2002+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Results]": [],
19812003
"test.test[order_by-native_desc_sort-over_sorted-Analyze]": [
19822004
{
19832005
"checksum": "a4984e0c0c8309cb787d8d24c6759ea9",

ydb/library/yql/tests/sql/hybrid_file/part7/canondata/result.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1581,6 +1581,20 @@
15811581
"uri": "https://{canondata_backend}/1781765/028f42f897160b53900546b39900217bb2eb9fb1/resource.tar.gz#test.test_optimizers-yql-16134-default.txt-Plan_/plan.txt"
15821582
}
15831583
],
1584+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Debug]": [
1585+
{
1586+
"checksum": "7f983c2bd71aacbf8c05a09d8a6ccfec",
1587+
"size": 4181,
1588+
"uri": "https://{canondata_backend}/1777230/e81b9e2c64fe4b93a822d7b1454621e0e1f09374/resource.tar.gz#test.test_optimizers-yql-18733_no_filter_multiusage_pushdown--Debug_/opt.yql_patched"
1589+
}
1590+
],
1591+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Plan]": [
1592+
{
1593+
"checksum": "22f22312b28ba379827f031e01ab68d7",
1594+
"size": 8940,
1595+
"uri": "https://{canondata_backend}/1777230/e81b9e2c64fe4b93a822d7b1454621e0e1f09374/resource.tar.gz#test.test_optimizers-yql-18733_no_filter_multiusage_pushdown--Plan_/plan.txt"
1596+
}
1597+
],
15841598
"test.test[optimizers-yql_5830_fuse_outer_with_extra_deps--Debug]": [
15851599
{
15861600
"checksum": "b38b9309220b31121d36d282c7020cc0",

ydb/library/yql/tests/sql/sql2yql/canondata/result.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11199,6 +11199,13 @@
1119911199
"uri": "https://{canondata_backend}/1936273/49c67b7d7a39200caa18261ed9d1bc5db8f0665a/resource.tar.gz#test_sql2yql.test_optimizers-yql-18408_filter_multiusage_pushdown_/sql.yql"
1120011200
}
1120111201
],
11202+
"test_sql2yql.test[optimizers-yql-18733_no_filter_multiusage_pushdown]": [
11203+
{
11204+
"checksum": "b2f87a348272c18d0ae93bf3f421b79c",
11205+
"size": 2300,
11206+
"uri": "https://{canondata_backend}/1942671/a0a38df298ba29d07b694136c15631b91a455b2b/resource.tar.gz#test_sql2yql.test_optimizers-yql-18733_no_filter_multiusage_pushdown_/sql.yql"
11207+
}
11208+
],
1120211209
"test_sql2yql.test[optimizers-yql-2171_aggregate_desc_sort_and_extract]": [
1120311210
{
1120411211
"checksum": "e46724f353c724da2d05f34ac86ebc12",
@@ -30673,6 +30680,13 @@
3067330680
"uri": "https://{canondata_backend}/1936273/49c67b7d7a39200caa18261ed9d1bc5db8f0665a/resource.tar.gz#test_sql_format.test_optimizers-yql-18408_filter_multiusage_pushdown_/formatted.sql"
3067430681
}
3067530682
],
30683+
"test_sql_format.test[optimizers-yql-18733_no_filter_multiusage_pushdown]": [
30684+
{
30685+
"checksum": "a776d7acfad71c3c81e59cbd969fd103",
30686+
"size": 207,
30687+
"uri": "https://{canondata_backend}/1942671/a0a38df298ba29d07b694136c15631b91a455b2b/resource.tar.gz#test_sql_format.test_optimizers-yql-18733_no_filter_multiusage_pushdown_/formatted.sql"
30688+
}
30689+
],
3067630690
"test_sql_format.test[optimizers-yql-2171_aggregate_desc_sort_and_extract]": [
3067730691
{
3067830692
"checksum": "ea7ad8b12dbf78644e2a7ac94e10159b",
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
in Input input3.txt
2+
res result.txt
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pragma config.flags("OptimizerFlags", "FilterPushdownEnableMultiusage");
2+
USE plato;
3+
4+
$src = select distinct key from Input where value = 'ddd';
5+
6+
select * from Input where key = $src;

ydb/library/yql/tests/sql/yt_native_file/part2/canondata/result.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1758,6 +1758,27 @@
17581758
"uri": "https://{canondata_backend}/1946324/7d1d6b1f697cbe9fb62c81047eb61d3fa72baf62/resource.tar.gz#test.test_optimizers-test_fuse_map_take-default.txt-Results_/results.txt"
17591759
}
17601760
],
1761+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Debug]": [
1762+
{
1763+
"checksum": "f050ac74230eb7dbc822b133663d3df9",
1764+
"size": 3057,
1765+
"uri": "https://{canondata_backend}/1942173/e2eaa722feec576f4e13850918acdacbd580f3f6/resource.tar.gz#test.test_optimizers-yql-18733_no_filter_multiusage_pushdown--Debug_/opt.yql"
1766+
}
1767+
],
1768+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Plan]": [
1769+
{
1770+
"checksum": "7efd4097d90d06075f422fa174e52d50",
1771+
"size": 8448,
1772+
"uri": "https://{canondata_backend}/1942173/e2eaa722feec576f4e13850918acdacbd580f3f6/resource.tar.gz#test.test_optimizers-yql-18733_no_filter_multiusage_pushdown--Plan_/plan.txt"
1773+
}
1774+
],
1775+
"test.test[optimizers-yql-18733_no_filter_multiusage_pushdown--Results]": [
1776+
{
1777+
"checksum": "42f0d61ed39ab67ff4bb545f73263c66",
1778+
"size": 1281,
1779+
"uri": "https://{canondata_backend}/1942173/e2eaa722feec576f4e13850918acdacbd580f3f6/resource.tar.gz#test.test_optimizers-yql-18733_no_filter_multiusage_pushdown--Results_/results.txt"
1780+
}
1781+
],
17611782
"test.test[order_by-native_desc_sort-over_sorted-Debug]": [
17621783
{
17631784
"checksum": "77e61c150cfecb02799d4731b020ba6d",

0 commit comments

Comments
 (0)