Class ProjectJoinRemoveRule

All Implemented Interfaces:
SubstitutionRule, TransformationRule

@Enclosing public class ProjectJoinRemoveRule extends RelRule<ProjectJoinRemoveRule.Config> implements SubstitutionRule
Planner rule that matches an Project on a Join and removes the join provided that the join is a left join or right join and the join keys are unique.

For instance,

select s.product_id
 from sales as s
 left join product as p
 on s.product_id = p.product_id

becomes

select s.product_id from sales as s