Class RexUtil.ExpandDisjunctionHelper<K>

java.lang.Object
org.apache.calcite.rex.RexUtil.ExpandDisjunctionHelper<K>
Type Parameters:
K - The dimension used to split predicates in disjunctions. If you want to expand predicates that can be pushed down to a single table from the disjunction, K is RexTableInputRef.RelTableRef; if you want to expand predicates that can be pushed down to Join inputs from the disjunction, K is string whose value is 'left' or 'right'.
Enclosing class:
RexUtil

public abstract static class RexUtil.ExpandDisjunctionHelper<K> extends Object
Helper class that expands predicates from disjunctions (split by K).
  • Constructor Details

    • ExpandDisjunctionHelper

      public ExpandDisjunctionHelper(RelBuilder relBuilder, int maxNodeCount)
  • Method Details

    • expand

      public Map<K,RexNode> expand(RexNode condition)
    • canReturnEarly

      protected abstract boolean canReturnEarly(RexNode condition, Map<K,RexNode> additionalConditions)
    • checkExpandCount

      protected void checkExpandCount(int changeCount)
      Check whether the number of redundant expressions generated in the expansion exceeds the limit.