From 35e15acf24bebca2d915f423158d4bb73a156dae Mon Sep 17 00:00:00 2001 From: Feilong Liu Date: Thu, 5 Jun 2025 12:35:33 -0700 Subject: [PATCH] Add comment for AddDistinctForSemiJoinBuild optimizer --- .../rule/AddDistinctForSemiJoinBuild.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/presto-main-base/src/main/java/com/facebook/presto/sql/planner/iterative/rule/AddDistinctForSemiJoinBuild.java b/presto-main-base/src/main/java/com/facebook/presto/sql/planner/iterative/rule/AddDistinctForSemiJoinBuild.java index fd6a471f7e078..2f30a29b5af69 100644 --- a/presto-main-base/src/main/java/com/facebook/presto/sql/planner/iterative/rule/AddDistinctForSemiJoinBuild.java +++ b/presto-main-base/src/main/java/com/facebook/presto/sql/planner/iterative/rule/AddDistinctForSemiJoinBuild.java @@ -34,6 +34,29 @@ import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; import static com.facebook.presto.sql.planner.plan.Patterns.semiJoin; +/** + * Add a distinct aggregation under the build side of semi join, for example: + * Rewrite query from + *
+ *     - SemiJoin
+ *          l.col in r.col
+ *          - scan l
+ *              col
+ *          - scan r
+ *              col
+ * 
+ * into + *
+ *     - SemiJoin
+ *          l.col in r.col
+ *          - scan l
+ *              col
+ *          - Aggregate
+ *              group by r.col
+ *              - scan r
+ *                  col
+ * 
+ */ public class AddDistinctForSemiJoinBuild implements Rule {