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>
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
-
Method Summary
Modifier and TypeMethodDescriptionanalyze
(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
-
visitLiteral
-
visitOver
-
visitCorrelVariable
-
visitCall
-
visitDynamicParam
-
visitRangeRef
-
visitFieldAccess
-
visitLocalRef
-