public static interface FilterPushDownListener.ScanPushDownListener
Modifier and Type | Method and Description |
---|---|
ExprNode |
accept(ExprNode conjunct)
Determine if the given relational operator (which is already in the form
<col name> <relop> <const> , qualifies for push down for
this scan. |
org.apache.calcite.util.Pair<GroupScan,List<org.apache.calcite.rex.RexNode>> |
transform(ExprNode.AndNode expr)
Transform a normalized DNF term into a new scan.
|
ExprNode accept(ExprNode conjunct)
<col name> <relop> <const>
, qualifies for push down for
this scan.
If so, return an equivalent RelOp with the value normalized to what the plugin needs. The returned value may be the same as the original one if the value is already normalized.
conjunct
- condensed form of a Drill WHERE clause expression nodeConstantHolder#normalize(org.apache.drill.common.types.TypeProtos.MinorType)}
org.apache.calcite.util.Pair<GroupScan,List<org.apache.calcite.rex.RexNode>> transform(ExprNode.AndNode expr)
(a AND b AND (x OR y))
OR
term represents a scan partition. It
is up to the code here to determine if the scan partition can be handled,
corresponds to a storage partition, or can be done as a separate
scan (as for a JDBC or REST plugin, say.)
Each term is accompanied by the Calcite expression from which it was derived. The caller is responsible for determining which expressions, if any, to leave in the query by returning a list AND'ed (CNF) terms to leave in the query. Those terms can be the ones passed in, or new terms to handle special needs.
expr
- a set of AND'ed expressions in Conjunctive Normal Form (CNF)Copyright © 1970 The Apache Software Foundation. All rights reserved.