Interface FilterPredicate
- All Known Implementing Classes:
FilterPredicate.And, FilterPredicate.BinaryColumnPredicate, FilterPredicate.BinaryInPredicate, FilterPredicate.BooleanColumnPredicate, FilterPredicate.DateColumnPredicate, FilterPredicate.DecimalColumnPredicate, FilterPredicate.DoubleColumnPredicate, FilterPredicate.FloatColumnPredicate, FilterPredicate.InstantColumnPredicate, FilterPredicate.IntColumnPredicate, FilterPredicate.IntInPredicate, FilterPredicate.IsNotNullPredicate, FilterPredicate.IsNullPredicate, FilterPredicate.LongColumnPredicate, FilterPredicate.LongInPredicate, FilterPredicate.Not, FilterPredicate.Or, FilterPredicate.SignedBinaryColumnPredicate, FilterPredicate.TimeColumnPredicate
public sealed interface FilterPredicate
permits FilterPredicate.IntColumnPredicate, FilterPredicate.LongColumnPredicate, FilterPredicate.FloatColumnPredicate, FilterPredicate.DoubleColumnPredicate, FilterPredicate.BooleanColumnPredicate, FilterPredicate.BinaryColumnPredicate, FilterPredicate.SignedBinaryColumnPredicate, FilterPredicate.IntInPredicate, FilterPredicate.LongInPredicate, FilterPredicate.BinaryInPredicate, FilterPredicate.DateColumnPredicate, FilterPredicate.InstantColumnPredicate, FilterPredicate.TimeColumnPredicate, FilterPredicate.DecimalColumnPredicate, FilterPredicate.IsNullPredicate, FilterPredicate.IsNotNullPredicate, FilterPredicate.And, FilterPredicate.Or, FilterPredicate.Not
A predicate for filtering row groups based on column statistics.
Filter predicates enable predicate push-down: row groups whose statistics prove that no rows can match the predicate are skipped entirely, avoiding unnecessary I/O and decoding.
Usage examples:
// Simple comparison
FilterPredicate filter = FilterPredicate.gt("age", 21);
// Compound predicate
FilterPredicate filter = FilterPredicate.and(
FilterPredicate.gtEq("salary", 50000L),
FilterPredicate.lt("age", 65)
);
// Use with reader
try (ColumnReader reader = fileReader.createColumnReader("salary", filter)) {
while (reader.nextBatch()) { ... }
}
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final recordstatic final recordstatic final recordstatic final recordstatic final recordPredicate for DATE columns.static final recordPredicate for DECIMAL columns.static final recordstatic final recordstatic final recordPredicate for TIMESTAMP columns.static final recordstatic final recordstatic final recordPredicate that matches rows where the column value is not null.static final recordPredicate that matches rows where the column value is null.static final recordstatic final recordstatic final recordstatic enumstatic final recordstatic final recordPredicate forFIXED_LEN_BYTE_ARRAYcolumns that require signed (two's complement) comparison, such as decimals.static final recordPredicate for TIME columns. -
Method Summary
Static MethodsModifier and TypeMethodDescriptionstatic FilterPredicateand(FilterPredicate... filters) static FilterPredicateand(FilterPredicate left, FilterPredicate right) static FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicateeq(String column, BigDecimal value) Creates an equals predicate for aBigDecimalcolumn (Parquet DECIMAL logical type).static FilterPredicateCreates an equals predicate for anInstantcolumn (Parquet TIMESTAMP logical type).static FilterPredicateCreates an equals predicate for aLocalDatecolumn (Parquet DATE logical type).static FilterPredicateCreates an equals predicate for aLocalTimecolumn (Parquet TIME logical type).static FilterPredicateCreates an equals predicate for aUUIDcolumn (Parquet UUID logical type).static FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicategt(String column, BigDecimal value) Creates a greater-than predicate for aBigDecimalcolumn.static FilterPredicateCreates a greater-than predicate for anInstantcolumn.static FilterPredicateCreates a greater-than predicate for aLocalDatecolumn.static FilterPredicateCreates a greater-than predicate for aLocalTimecolumn.static FilterPredicateCreates a greater-than predicate for aUUIDcolumn.static FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicategtEq(String column, BigDecimal value) Creates a greater-than-or-equal predicate for aBigDecimalcolumn.static FilterPredicateCreates a greater-than-or-equal predicate for anInstantcolumn.static FilterPredicateCreates a greater-than-or-equal predicate for aLocalDatecolumn.static FilterPredicateCreates a greater-than-or-equal predicate for aLocalTimecolumn.static FilterPredicateCreates a greater-than-or-equal predicate for aUUIDcolumn.static FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicateCreates a predicate that matches rows where the given column is not null.static FilterPredicateCreates a predicate that matches rows where the given column is null.static FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatelt(String column, BigDecimal value) Creates a less-than predicate for aBigDecimalcolumn.static FilterPredicateCreates a less-than predicate for anInstantcolumn.static FilterPredicateCreates a less-than predicate for aLocalDatecolumn.static FilterPredicateCreates a less-than predicate for aLocalTimecolumn.static FilterPredicateCreates a less-than predicate for aUUIDcolumn.static FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicateltEq(String column, BigDecimal value) Creates a less-than-or-equal predicate for aBigDecimalcolumn.static FilterPredicateCreates a less-than-or-equal predicate for anInstantcolumn.static FilterPredicateCreates a less-than-or-equal predicate for aLocalDatecolumn.static FilterPredicateCreates a less-than-or-equal predicate for aLocalTimecolumn.static FilterPredicateCreates a less-than-or-equal predicate for aUUIDcolumn.static FilterPredicatenot(FilterPredicate filter) static FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatestatic FilterPredicatenotEq(String column, BigDecimal value) Creates a not-equals predicate for aBigDecimalcolumn.static FilterPredicateCreates a not-equals predicate for anInstantcolumn.static FilterPredicateCreates a not-equals predicate for aLocalDatecolumn.static FilterPredicateCreates a not-equals predicate for aLocalTimecolumn.static FilterPredicateCreates a not-equals predicate for aUUIDcolumn.static FilterPredicateor(FilterPredicate... filters) static FilterPredicateor(FilterPredicate left, FilterPredicate right)
-
Method Details
-
eq
-
notEq
-
lt
-
ltEq
-
gt
-
gtEq
-
eq
-
notEq
-
lt
-
ltEq
-
gt
-
gtEq
-
eq
-
notEq
-
lt
-
ltEq
-
gt
-
gtEq
-
eq
-
notEq
-
lt
-
ltEq
-
gt
-
gtEq
-
eq
-
notEq
-
eq
-
notEq
-
lt
-
ltEq
-
gt
-
gtEq
-
in
-
in
-
inStrings
-
eq
Creates an equals predicate for aLocalDatecolumn (Parquet DATE logical type). The date is converted to days since the Unix epoch at evaluation time. -
notEq
Creates a not-equals predicate for aLocalDatecolumn. -
lt
Creates a less-than predicate for aLocalDatecolumn. -
ltEq
Creates a less-than-or-equal predicate for aLocalDatecolumn. -
gt
Creates a greater-than predicate for aLocalDatecolumn. -
gtEq
Creates a greater-than-or-equal predicate for aLocalDatecolumn. -
eq
Creates an equals predicate for anInstantcolumn (Parquet TIMESTAMP logical type). The column's time unit is determined from the schema at evaluation time. -
notEq
Creates a not-equals predicate for anInstantcolumn. -
lt
Creates a less-than predicate for anInstantcolumn. -
ltEq
Creates a less-than-or-equal predicate for anInstantcolumn. -
gt
Creates a greater-than predicate for anInstantcolumn. -
gtEq
Creates a greater-than-or-equal predicate for anInstantcolumn. -
eq
Creates an equals predicate for aLocalTimecolumn (Parquet TIME logical type). The column's time unit is determined from the schema at evaluation time. -
notEq
Creates a not-equals predicate for aLocalTimecolumn. -
lt
Creates a less-than predicate for aLocalTimecolumn. -
ltEq
Creates a less-than-or-equal predicate for aLocalTimecolumn. -
gt
Creates a greater-than predicate for aLocalTimecolumn. -
gtEq
Creates a greater-than-or-equal predicate for aLocalTimecolumn. -
eq
Creates an equals predicate for aBigDecimalcolumn (Parquet DECIMAL logical type). The column's scale, precision, and physical type are determined from the schema at evaluation time. -
notEq
Creates a not-equals predicate for aBigDecimalcolumn. -
lt
Creates a less-than predicate for aBigDecimalcolumn. -
ltEq
Creates a less-than-or-equal predicate for aBigDecimalcolumn. -
gt
Creates a greater-than predicate for aBigDecimalcolumn. -
gtEq
Creates a greater-than-or-equal predicate for aBigDecimalcolumn. -
eq
Creates an equals predicate for aUUIDcolumn (Parquet UUID logical type). The UUID is encoded as a 16-byte big-endianFIXED_LEN_BYTE_ARRAY. -
notEq
Creates a not-equals predicate for aUUIDcolumn. -
lt
Creates a less-than predicate for aUUIDcolumn. -
ltEq
Creates a less-than-or-equal predicate for aUUIDcolumn. -
gt
Creates a greater-than predicate for aUUIDcolumn. -
gtEq
Creates a greater-than-or-equal predicate for aUUIDcolumn. -
isNull
Creates a predicate that matches rows where the given column is null. -
isNotNull
Creates a predicate that matches rows where the given column is not null. -
and
-
and
-
or
-
or
-
not
-