Package org.apache.iceberg.expressions
Class ResidualEvaluator
java.lang.Object
org.apache.iceberg.expressions.ResidualEvaluator
- All Implemented Interfaces:
- Serializable
Finds the residuals for an 
Expression the partitions in the given PartitionSpec.
 A residual expression is made by partially evaluating an expression using partition values. For example, if a table is partitioned by day(utc_timestamp) and is read with a filter expression utc_timestamp >= a and utc_timestamp <= b, then there are 4 possible residuals expressions for the partition data, d:
- If d > day(a) and d < day(b), the residual is always true
- If d == day(a) and d != day(b), the residual is utc_timestamp >= a
- if d == day(b) and d != day(a), the residual is utc_timestamp <= b
- If d == day(a) == day(b), the residual is utc_timestamp >= a and utc_timestamp <= b
Partition data is passed using StructLike. Residuals are returned by residualFor(StructLike).
 
This class is thread-safe.
- See Also:
- 
Method SummaryModifier and TypeMethodDescriptionstatic ResidualEvaluatorof(PartitionSpec spec, Expression expr, boolean caseSensitive) Return a residual evaluator for aspecandexpression.residualFor(StructLike partitionData) Returns a residual expression for the given partition values.static ResidualEvaluatorunpartitioned(Expression expr) Return a residual evaluator for an unpartitionedspec.
- 
Method Details- 
unpartitionedReturn a residual evaluator for an unpartitionedspec.- Parameters:
- expr- an expression
- Returns:
- a residual evaluator that always returns the expression
 
- 
ofReturn a residual evaluator for aspecandexpression.- Parameters:
- spec- a partition spec
- expr- an expression
- Returns:
- a residual evaluator for the expression
 
- 
residualForReturns a residual expression for the given partition values.- Parameters:
- partitionData- partition data values
- Returns:
- the residual of this evaluator's expression from the partition values
 
 
-