Class SemiJoinRemoveRule

All Implemented Interfaces:
TransformationRule

@Enclosing public class SemiJoinRemoveRule extends RelRule<SemiJoinRemoveRule.Config> implements TransformationRule
Planner rule that removes a semi-join from a join tree.

It is invoked after attempts have been made to convert a SemiJoin to an indexed scan on a join factor have failed. Namely, if the join factor does not reduce to a single table that can be scanned using an index.

It should only be enabled if all SemiJoins in the plan are advisory; that is, they can be safely dropped without affecting the semantics of the query.

See Also: