Class FilterVisitor
- java.lang.Object
-
- com.apple.foundationdb.record.query.plan.visitor.RecordQueryPlannerSubstitutionVisitor
-
- com.apple.foundationdb.record.query.plan.visitor.FilterVisitor
-
public class FilterVisitor extends RecordQueryPlannerSubstitutionVisitor
A substitution visitor that pushes a filter below a record fetch if all of the (non-repeated) field are available in a covering scan.
-
-
Field Summary
-
Fields inherited from class com.apple.foundationdb.record.query.plan.visitor.RecordQueryPlannerSubstitutionVisitor
recordMetadata
-
-
Constructor Summary
Constructors Constructor Description FilterVisitor(RecordMetaData recordMetadata, PlannableIndexTypes indexTypes, KeyExpression commonPrimaryKey)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean
findFilterReferencedFields(QueryComponent filter, Set<KeyExpression> filterFields)
static void
partitionFilters(List<QueryComponent> filters, AvailableFields availableFields, List<QueryComponent> indexFilters, List<QueryComponent> residualFilters, Set<KeyExpression> allReferencedFields)
RecordQueryPlan
postVisit(RecordQueryPlan recordQueryPlan)
-
Methods inherited from class com.apple.foundationdb.record.query.plan.visitor.RecordQueryPlannerSubstitutionVisitor
applyVisitors, availableFields, availableFields, removeIndexFetch, removeIndexFetch
-
-
-
-
Constructor Detail
-
FilterVisitor
public FilterVisitor(@Nonnull RecordMetaData recordMetadata, @Nonnull PlannableIndexTypes indexTypes, @Nullable KeyExpression commonPrimaryKey)
-
-
Method Detail
-
postVisit
@Nonnull public RecordQueryPlan postVisit(@Nonnull RecordQueryPlan recordQueryPlan)
- Specified by:
postVisit
in classRecordQueryPlannerSubstitutionVisitor
-
partitionFilters
public static void partitionFilters(@Nonnull List<QueryComponent> filters, @Nonnull AvailableFields availableFields, @Nonnull List<QueryComponent> indexFilters, @Nonnull List<QueryComponent> residualFilters, @Nullable Set<KeyExpression> allReferencedFields)
-
findFilterReferencedFields
public static boolean findFilterReferencedFields(@Nonnull QueryComponent filter, @Nonnull Set<KeyExpression> filterFields)
-
-