Interface QueryPredicate
-
- All Superinterfaces:
Bindable
,Correlated<QueryPredicate>
,PlanHashable
- All Known Implementing Classes:
AndOrPredicate
,AndPredicate
,ElementPredicate
,NotPredicate
,OrPredicate
@API(EXPERIMENTAL) public interface QueryPredicate extends Bindable, PlanHashable, Correlated<QueryPredicate>
An interface describing a predicate that can be evaluated on aSourceEntry
(usually derived from a record).QueryPredicate
is generally quite similar toQueryComponent
. However, there is a key difference in how each interface evaluates the predicate against a given record:-
A
QueryComponent
is evaluated on aFDBRecord
wrapping a Protobuf message. To evaluate predicates on nested records, aQueryComponent
such asNestedField
orOneOfThemWithComponent
will descend into the nested record. -
A
QueryPredicate
is evaluated on aSourceEntry
, which mapsSource
s to values. The predicate can be evaluated on a nested record by specifying a complexSource
, such asRepeatedFieldSource
. All sources are evaluated to produce a stream of source entries before any predicates are evaluated.
Concretely, the difference between
QueryPredicate
s andQueryComponent
s is most easily seen in the way that multiple predicates on repeated fields can be expressed. Any query predicate anywhere in a tree of predicates can make use of any source. In contrast, eachOneOfThemWithComponent
is a single iteration through the field's repeated values so the values obtained by that iteration are usable only within thatOneOfThemWithComponent
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.PlanHashable
PlanHashable.PlanHashKind
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <M extends Message>
Booleaneval(FDBRecordStoreBase<M> store, EvaluationContext context, SourceEntry sourceEntry)
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.temp.Correlated
getCorrelatedTo, rebase, semanticEquals, semanticHashCode
-
Methods inherited from interface com.apple.foundationdb.record.PlanHashable
planHash, planHash
-
-
-
-
Method Detail
-
eval
@Nullable <M extends Message> Boolean eval(@Nonnull FDBRecordStoreBase<M> store, @Nonnull EvaluationContext context, @Nonnull SourceEntry sourceEntry)
-
-