Skip to content

Commit 1b71de0

Browse files
committed
fix:using simplifyOptimizerRules wasn't RemoveEmptyUnionBranches
1 parent 424e8b5 commit 1b71de0

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

core/trino-main/src/main/java/io/trino/sql/planner/PlanOptimizers.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -963,6 +963,7 @@ public PlanOptimizers(
963963
.add(new PushFilterIntoValues(plannerContext))
964964
.add(new ReplaceJoinOverConstantWithProject())
965965
.add(new RemoveRedundantPredicateAboveTableScan(plannerContext))
966+
.add(new RemoveEmptyUnionBranches())
966967
.build()));
967968
// Remove unsupported dynamic filters introduced by PredicatePushdown. Also, cleanup dynamic filters removed by
968969
// PushPredicateIntoTableScan and RemoveRedundantPredicateAboveTableScan due to those rules replacing table scans with empty ValuesNode

core/trino-main/src/test/java/io/trino/sql/planner/TestLogicalPlanner.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
import io.trino.sql.planner.plan.IndexJoinNode;
6666
import io.trino.sql.planner.plan.JoinNode;
6767
import io.trino.sql.planner.plan.LimitNode;
68+
import io.trino.sql.planner.plan.OutputNode;
6869
import io.trino.sql.planner.plan.PlanNode;
6970
import io.trino.sql.planner.plan.SemiJoinNode;
7071
import io.trino.sql.planner.plan.SemiJoinNode.DistributionType;
@@ -1332,6 +1333,31 @@ public void testRemovesTrivialFilters()
13321333
values("nationkey", "name", "regionkey", "comment")));
13331334
}
13341335

1336+
@Test
1337+
public void testRemoveTrivialFiltersWithPartitioningHandle()
1338+
{
1339+
assertThat(countOfMatchingNodes(
1340+
plan("SELECT * FROM (" +
1341+
" SELECT " +
1342+
" n.name AS \"col1\"," +
1343+
" n.nationkey AS \"col2\"," +
1344+
" CAST(null AS varchar) AS \"col3\"" +
1345+
" FROM nation n" +
1346+
" WHERE n.nationkey <= 3" +
1347+
" UNION ALL" +
1348+
" SELECT " +
1349+
" r.name AS \"col1\", " +
1350+
" CAST(r.regionkey AS bigint) AS \"col2\"," +
1351+
" r.comment AS \"col3\"" +
1352+
" FROM region r" +
1353+
") subquery" +
1354+
" WHERE \"col3\" IN (" +
1355+
" SELECT r.comment " +
1356+
" FROM region r" +
1357+
")"),
1358+
ValuesNode.class::isInstance)).isEqualTo(0);
1359+
}
1360+
13351361
@Test
13361362
public void testRemovesNullFilter()
13371363
{

0 commit comments

Comments
 (0)