Class ReplaceRedundantJoinWithProject
- java.lang.Object
-
- io.trino.sql.planner.iterative.rule.ReplaceRedundantJoinWithProject
-
public class ReplaceRedundantJoinWithProject extends Object implements Rule<JoinNode>
This rule is complementary to RemoveRedundantJoin. It transforms plans with outer join where outer source of the join is not empty, and the other source is empty. Outer join is replaced with the outer source and a project which appends nulls as the empty source's outputs.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.trino.sql.planner.iterative.Rule
Rule.Context, Rule.Result
-
-
Constructor Summary
Constructors Constructor Description ReplaceRedundantJoinWithProject()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Rule.Resultapply(JoinNode node, Captures captures, Rule.Context context)Pattern<JoinNode>getPattern()Returns a pattern to which plan nodes this rule applies.
-
-
-
Method Detail
-
getPattern
public Pattern<JoinNode> getPattern()
Description copied from interface:RuleReturns a pattern to which plan nodes this rule applies.- Specified by:
getPatternin interfaceRule<JoinNode>
-
apply
public Rule.Result apply(JoinNode node, Captures captures, Rule.Context context)
-
-