Class DrillFilterJoinRules

java.lang.Object
org.apache.drill.exec.planner.logical.DrillFilterJoinRules

public class DrillFilterJoinRules extends Object
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final org.apache.calcite.plan.RelOptRule
    The same as above, but with Drill's operators.
    static final org.apache.calcite.rel.rules.FilterJoinRule.Predicate
    Predicate that always returns true for any filter in OUTER join, and only true for EQUAL or IS_DISTINCT_FROM over RexInputRef in INNER join.
    static final org.apache.calcite.plan.RelOptRule
    Rule that pushes predicates from a Filter into the Join below them.
    static final org.apache.calcite.plan.RelOptRule
    Rule that pushes predicates in a Join into the inputs to the join.
    static final org.apache.calcite.rel.rules.FilterJoinRule.Predicate
    Predicate that always returns true for any filter in OUTER join, and only true for strict EQUAL or IS_DISTINCT_FROM conditions (without any mathematical operations) over RexInputRef in INNER join.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • EQUAL_IS_DISTINCT_FROM

      public static final org.apache.calcite.rel.rules.FilterJoinRule.Predicate EQUAL_IS_DISTINCT_FROM
      Predicate that always returns true for any filter in OUTER join, and only true for EQUAL or IS_DISTINCT_FROM over RexInputRef in INNER join. With this predicate, the filter expression that return true will be kept in the JOIN OP. Example: INNER JOIN, L.C1 = R.C2 and L.C3 + 100 = R.C4 + 100 will be kepted in JOIN. L.C5 < R.C6 will be pulled up into Filter above JOIN. OUTER JOIN, Keep any filter in JOIN.
    • STRICT_EQUAL_IS_DISTINCT_FROM

      public static final org.apache.calcite.rel.rules.FilterJoinRule.Predicate STRICT_EQUAL_IS_DISTINCT_FROM
      Predicate that always returns true for any filter in OUTER join, and only true for strict EQUAL or IS_DISTINCT_FROM conditions (without any mathematical operations) over RexInputRef in INNER join. With this predicate, the filter expression that return true will be kept in the JOIN OP. Example: INNER JOIN, L.C1 = R.C2 will be kepted in JOIN. L.C3 + 100 = R.C4 + 100, L.C5 < R.C6 will be pulled up into Filter above JOIN. OUTER JOIN, Keep any filter in JOIN.
    • FILTER_INTO_JOIN

      public static final org.apache.calcite.plan.RelOptRule FILTER_INTO_JOIN
      Rule that pushes predicates from a Filter into the Join below them.
    • DRILL_FILTER_INTO_JOIN

      public static final org.apache.calcite.plan.RelOptRule DRILL_FILTER_INTO_JOIN
      The same as above, but with Drill's operators.
    • JOIN_PUSH_CONDITION

      public static final org.apache.calcite.plan.RelOptRule JOIN_PUSH_CONDITION
      Rule that pushes predicates in a Join into the inputs to the join.
  • Constructor Details

    • DrillFilterJoinRules

      public DrillFilterJoinRules()