Class FindFiltersForCollation

java.lang.Object
org.apache.calcite.rex.RexVisitorImpl<Boolean>
org.apache.drill.exec.planner.index.FindFiltersForCollation
All Implemented Interfaces:
org.apache.calcite.rex.RexVisitor<Boolean>

public class FindFiltersForCollation extends org.apache.calcite.rex.RexVisitorImpl<Boolean>
A visitor class that analyzes a filter condition (typically an index condition) and a supplied input collation and determines what the output collation would be after applying the filter.
  • Field Summary

    Fields inherited from class org.apache.calcite.rex.RexVisitorImpl

    deep
  • Constructor Summary

    Constructors
    Constructor
    Description
    FindFiltersForCollation(org.apache.calcite.rel.RelNode input)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Map<Integer,List<org.apache.calcite.rex.RexNode>>
    analyze(org.apache.calcite.rex.RexNode indexCondition)
    For each RelFieldCollation, gather the set of filter conditions corresponding to it e.g suppose input collation is [0][1] and there are filter conditions: $0 = 5 AND $1 > 10 AND $1 <20 then the map will have 2 entries: [0] -> ($0 = 5) [1] -> {($1 > 10), ($1 < 20)}
    visitCall(org.apache.calcite.rex.RexCall call)
     
    visitCorrelVariable(org.apache.calcite.rex.RexCorrelVariable correlVariable)
     
    visitDynamicParam(org.apache.calcite.rex.RexDynamicParam dynamicParam)
     
    visitFieldAccess(org.apache.calcite.rex.RexFieldAccess fieldAccess)
     
    visitInputRef(org.apache.calcite.rex.RexInputRef inputRef)
     
    visitLiteral(org.apache.calcite.rex.RexLiteral literal)
     
    visitLocalRef(org.apache.calcite.rex.RexLocalRef localRef)
     
    visitOver(org.apache.calcite.rex.RexOver over)
     
    visitRangeRef(org.apache.calcite.rex.RexRangeRef rangeRef)
     

    Methods inherited from class org.apache.calcite.rex.RexVisitorImpl

    visitArrayAnd, visitArrayOr, visitPatternFieldRef, visitSubQuery, visitTableInputRef

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.calcite.rex.RexVisitor

    visitEach, visitList, visitList
  • Constructor Details

    • FindFiltersForCollation

      public FindFiltersForCollation(org.apache.calcite.rel.RelNode input)
  • Method Details

    • analyze

      public Map<Integer,List<org.apache.calcite.rex.RexNode>> analyze(org.apache.calcite.rex.RexNode indexCondition)
      For each RelFieldCollation, gather the set of filter conditions corresponding to it e.g suppose input collation is [0][1] and there are filter conditions: $0 = 5 AND $1 > 10 AND $1 <20 then the map will have 2 entries: [0] -> ($0 = 5) [1] -> {($1 > 10), ($1 < 20)}
      Parameters:
      indexCondition - index condition to analyze
      Returns:
      list of output RelFieldCollation
    • visitInputRef

      public Boolean visitInputRef(org.apache.calcite.rex.RexInputRef inputRef)
      Specified by:
      visitInputRef in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitInputRef in class org.apache.calcite.rex.RexVisitorImpl<Boolean>
    • visitLiteral

      public Boolean visitLiteral(org.apache.calcite.rex.RexLiteral literal)
      Specified by:
      visitLiteral in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitLiteral in class org.apache.calcite.rex.RexVisitorImpl<Boolean>
    • visitOver

      public Boolean visitOver(org.apache.calcite.rex.RexOver over)
      Specified by:
      visitOver in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitOver in class org.apache.calcite.rex.RexVisitorImpl<Boolean>
    • visitCorrelVariable

      public Boolean visitCorrelVariable(org.apache.calcite.rex.RexCorrelVariable correlVariable)
      Specified by:
      visitCorrelVariable in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitCorrelVariable in class org.apache.calcite.rex.RexVisitorImpl<Boolean>
    • visitCall

      public Boolean visitCall(org.apache.calcite.rex.RexCall call)
      Specified by:
      visitCall in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitCall in class org.apache.calcite.rex.RexVisitorImpl<Boolean>
    • visitDynamicParam

      public Boolean visitDynamicParam(org.apache.calcite.rex.RexDynamicParam dynamicParam)
      Specified by:
      visitDynamicParam in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitDynamicParam in class org.apache.calcite.rex.RexVisitorImpl<Boolean>
    • visitRangeRef

      public Boolean visitRangeRef(org.apache.calcite.rex.RexRangeRef rangeRef)
      Specified by:
      visitRangeRef in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitRangeRef in class org.apache.calcite.rex.RexVisitorImpl<Boolean>
    • visitFieldAccess

      public Boolean visitFieldAccess(org.apache.calcite.rex.RexFieldAccess fieldAccess)
      Specified by:
      visitFieldAccess in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitFieldAccess in class org.apache.calcite.rex.RexVisitorImpl<Boolean>
    • visitLocalRef

      public Boolean visitLocalRef(org.apache.calcite.rex.RexLocalRef localRef)
      Specified by:
      visitLocalRef in interface org.apache.calcite.rex.RexVisitor<Boolean>
      Overrides:
      visitLocalRef in class org.apache.calcite.rex.RexVisitorImpl<Boolean>