Package com.apple.foundationdb.record.query.plan.temp
This will contain design docs for the Cascades planner at some point.
-
Interface Summary Interface Description AliasMap.MatchingIdPredicate An predicate that tests for a match between quantifiers also taking into account an equivalence maps betweenCorrelationIdentifier
s.Bindable A planner type that supports rule binding.Correlated<S extends Correlated<S>> A correlated entity is one which can only be evaluated as a function of some input (usually aQuantifier
from its relational parent).ExpressionRef<T extends RelationalExpression> This interface is used mostly as an (admittedly surmountable) barrier to rules mutating bound references directly, which is undefined behavior.PlanContext A basic context object that stores all of the metadata about a record store, such as the available indexes.PlannerProperty<T> An interface for certain Cascades-style properties, which are measurable features of an expression other than the structure of the expression tree.PlannerRuleCall APlannerRuleCall
is a context object that supports a single application of a rule to a particular expression.Quantifiers.MatchingPredicate An predicate that tests for a match between quantifiers also taking into account an equivalence maps betweenCorrelationIdentifier
s.RelationalExpression A relational expression is aRelationalExpression
that represents a stream of records.RelationalExpressionWithPredicate A (relational) expression that has a predicate on it.TopologicalSort.TopologicalOrderPermutationIterable<T> Iterable that provides special iterators of typeTopologicalSort.TopologicalOrderPermutationIterator
.TopologicalSort.TopologicalOrderPermutationIterator<T> An iterator extendingIterator
providing the ability to skip a certain prefix. -
Class Summary Class Description AliasMap This class encapsulates mappings betweenCorrelationIdentifier
s and helpers to create and maintain these mappings.AliasMap.Builder Builder class for theAliasMap
.CascadesCostModel A comparator implementing the current heuristic cost model for theCascadesPlanner
.CascadesPlanner A Cascades-style query planner that converts aRecordQuery
to aRecordQueryPlan
, possibly using secondary indexes defined in aRecordMetaData
to execute the query efficiently.CascadesRuleCall A rule call implementation for theCascadesPlanner
.ComparisonRange A set of compatible comparisons on a single field of aKeyExpression
representing a contiguous range of values for that field.CorrelationIdentifier A correlation identifier is an immutable object that is created with a string uniquely identifying it.ExpressionRefDelegate<T extends RelationalExpression> An expression reference that wraps another expression reference.ExpressionRefTraversal Utility class to provide a view on a graph given by a root expression reference (to aRelationalExpression
that allows to perform traversal operations that are normally not possible on instances ofExpressionRef
such asExpressionRefTraversal.getLeaves()
andExpressionRefTraversal.FullyTraversableExpressionRef.getParentRefs()
.ExpressionRefTraversal.RefPath Case class to hold information about the path from an expression to another expression reference.GroupExpressionPrinter A utility class for printing out aGroupExpressionRef
in a readable form.GroupExpressionRef<T extends RelationalExpression> A Cascades-style group expression, representing the members of set ofRelationalExpression
s that belong to the same equivalence class.IndexEntrySource A source of abstract index entries, each of which references a single record.MetaDataPlanContext APlanContext
where the underlying meta-data comes fromRecordMetaData
andRecordStoreState
objects, as is generally the case when planning actual queries.PlannerRule<T extends Bindable> Classes that inherit fromPlannerRule
form the base of the Cascades planning system.PlannerRuleSet A set of rules for use by a planner that supports quickly finding rules that could match a given planner expression.Quantifier Models the concept of quantification.Quantifier.Builder<Q extends Quantifier,B extends Quantifier.Builder<Q,B>> Builder class for quantifiers.Quantifier.Existential A quantifier that conceptually flows exactly one item containing a boolean to the owning expression indicating whether the sub-graph that the quantifier ranges over produced a non-empty or an empty result.Quantifier.Existential.ExistentialBuilder Builder subclass for existential quantifiers.Quantifier.ForEach A quantifier that conceptually flows one item at a time from the expression it ranges over to the owning expression.Quantifier.ForEach.ForEachBuilder Builder subclass to build for-each quantifiers..Quantifier.Physical Physical quantifier.Quantifier.Physical.PhysicalBuilder Builder subclass for physical quantifiers.Quantifiers Auxiliary class containing factory methods and helpers forQuantifier
.RelationalExpressionPointerSet<T extends RelationalExpression> A set ofRelationalExpression
s that uses reference ("pointer") equality to determine equivalence for the purposes of set membership, rather than theObject.equals(Object)
method used by the JavaSet
interface.TopologicalSort Utility class to provide helpers related to topological sorts. -
Enum Summary Enum Description ComparisonRange.Type Comparison ranges can be divided into three types, with distinct planning behaviour: Empty ranges, to which any comparison can be added. Equality ranges, to which only the same (equality) comparison can be added. Inequality ranges, to which any other comparison can be added. This behavior is defined inComparisonRange.tryToAdd(Comparisons.Comparison)
. -
Exception Summary Exception Description ExpressionRef.UngettableReferenceException An exception thrown whenExpressionRef.get()
is called on a reference that does not support it, such as a group reference.