Class SemiJoinJoinTransposeRule

All Implemented Interfaces:
TransformationRule

@Enclosing public class SemiJoinJoinTransposeRule extends RelRule<SemiJoinJoinTransposeRule.Config> implements TransformationRule
Planner rule that pushes a semi-join down in a tree past a Join in order to trigger other rules that will convert SemiJoins.
  • SemiJoin(LogicalJoin(X, Y), Z) → LogicalJoin(SemiJoin(X, Z), Y)
  • SemiJoin(LogicalJoin(X, Y), Z) → LogicalJoin(X, SemiJoin(Y, Z))

Whether this first or second conversion is applied depends on which operands actually participate in the semi-join.

See Also: