Package com.apple.foundationdb.record.query.plan.temp.rules
A package containing the rules used by the planner.
-
Class Summary Class Description CombineFilterRule A simple rule that combines two nested filter plans and combines them into a single filter plan with a conjunction of the two filters.FilterWithElementWithComparisonRule A rewrite rule that turns a logical filter on the results of a full scan (without a sort) into an index scan on a compatibly ordered index.FindPossibleIndexForAndPredicateRule A rule that finds all indexes that could implement one of theComponentWithComparison
conjuncts of an AND filter, leaving all the other filters (of any type, including other fields) as a residual filter.FlattenNestedAndPredicateRule A simple rule that performs some basic Boolean normalization by flattening a nestedAndPredicate
into a single, wider AND.FullUnorderedExpressionToScanPlanRule A rule for implementing aFullUnorderedScanExpression
as aRecordQueryScanPlan
of the full primary key space.ImplementDistinctRule A rule that implements a distinct expression by adding aRecordQueryUnorderedPrimaryKeyDistinctPlan
if necessary.ImplementFilterRule A rule that implements a logical filter around aRecordQueryPlan
as aRecordQueryFilterPlan
.ImplementTypeFilterRule A rule that implements a logical type filter on an (already implemented)RecordQueryPlan
as aRecordQueryTypeFilterPlan
.ImplementUnorderedUnionRule A rule that implements an unordered union of its (already implemented) children.LogicalToPhysicalScanRule A rule that converts a logical index scan expression to aRecordQueryIndexPlan
.OrToUnorderedUnionRule Convert a filter on an or expression into a plan on the union.PushConjunctElementWithComparisonIntoExistingScanRule A rule that selects one of theComponentWithComparison
conjuncts from an AND and tries to push it into an existing logical scan.PushDistinctFilterBelowFilterRule A rule that moves aRecordQueryUnorderedPrimaryKeyDistinctPlan
below aRecordQueryFilterPlan
.PushElementWithComparisonIntoExistingScanRule A simple rule that looks for aComponentWithComparison
predicate and a compatibly ordered index scan comparison down to the index scan.PushSortIntoExistingIndexRule A rule that pushes a sort into a compatibly-ordered index scan, including one with existing comparisons (from filters or other sort orders) that might affect whether the index is compatibly ordered.PushTypeFilterBelowFilterRule A rule that moves aRecordQueryTypeFilterPlan
below aRecordQueryFilterPlan
.RemoveRedundantTypeFilterRule A rule that eliminates logical type filters that are completely redundant; that is, when the child of the logical type filter is guaranteed to return records of types included in the filter.SortToIndexRule A rule for implementing aLogicalSortExpression
as a scan of any appropriately-ordered index.