Package com.apple.foundationdb.record.query.plan.temp
This will contain design docs for the Cascades planner at some point.
-
Interface Summary Interface Description Bindable A planner type that supports rule binding.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.RelationalExpression A relational expression is aRelationalExpression
that represents a stream of records.RelationalExpressionWithPredicate A (relational) expression that has a predicate on it. -
Class Summary Class Description 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.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.Existential A quantifier that conceptually flows exactly one item containing a boolean to the owning expression indicating whether the subgraph that the quantifier ranges over produced a non-empty or an empty result.Quantifier.ForEach A quantifier that conceptually flows one item at a time from the expression it ranges over to the owning expression.Quantifier.Physical Physical quantifier.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. -
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.