Interface FilterPredicate
-
- All Known Implementing Classes:
Operators.And
,Operators.Eq
,Operators.Gt
,Operators.GtEq
,Operators.In
,Operators.LogicalNotUserDefined
,Operators.Lt
,Operators.LtEq
,Operators.Not
,Operators.NotEq
,Operators.NotIn
,Operators.Or
,Operators.SetColumnFilterPredicate
,Operators.UserDefined
,Operators.UserDefinedByClass
,Operators.UserDefinedByInstance
public interface FilterPredicate
A FilterPredicate is an expression tree describing the criteria for which records to keep when loading data from a parquet file. These predicates are applied in multiple places. Currently, they are applied to all row groups at job submission time to see if we can potentially drop entire row groups, and then they are applied during column assembly to drop individual records that are not wanted. FilterPredicates do not contain closures or instances of anonymous classes, rather they are expressed as an expression tree of operators. FilterPredicates are implemented in terms of the visitor pattern. SeeOperators
for the implementation of the operator tokens, andFilterApi
for the dsl functions for constructing an expression tree.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
FilterPredicate.Visitor<R>
A FilterPredicate Visitor must visit all the operators in a FilterPredicate expression tree, and must handle recursion itself, per the visitor pattern.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <R> R
accept(FilterPredicate.Visitor<R> visitor)
A FilterPredicate must accept a Visitor, per the visitor pattern.
-
-
-
Method Detail
-
accept
<R> R accept(FilterPredicate.Visitor<R> visitor)
A FilterPredicate must accept a Visitor, per the visitor pattern.- Type Parameters:
R
- return type of the visitor- Parameters:
visitor
- a visitor- Returns:
- the return value of Visitor#visit(this)
-
-