Package com.apple.foundationdb.record.query.plan.temp.properties
In Cascades, a property is an attribute of RelationalExpression
that cannot be described from the structure of the expression tree alone. For example, the set of record types that
a relational planner expression produces is a property, but whether or not it has a filter that contains an AND
clause is not a property. Properties generally need to be evaluated against an expression, instead of arising from
the structural features of a planner expression (which could be matched using an
ExpressionMatcher
.
In the Record Layer, properties are implemented as hierarchical visitors on the PlannerExpression
tree; this
approach prevents the accumulation of many methods on the PlannerExpression
interface. Furthermore, some
properties (such as the set of possible record types returned) cannot be determined from the PlannerExpression
alone; they also need access to the PlanContext
.
This package contains various implementations of PlannerProperty
.
-
Class Summary Class Description CreatesDuplicatesProperty A property that determines whether the expression may produce duplicate entries.ElementPredicateCountProperty A property that counts the number ofElementPredicate
s that appear in a planner expression tree.FieldWithComparisonCountProperty A property that counts the number ofFieldWithComparison
s that appear in a planner expression tree.RecordTypesProperty A property visitor that determines the set of record type names (as Strings) that aRelationalExpression
could produce.RelationalExpressionDepthProperty A property representing the minimum depth of any of a set of relational planner expression types in a relational planner expression: that is, the smallest integer such that one of those types is exactly that many relational planner expressions away from the root expression.TypeFilterCountProperty A property that determines the sum, over all elements of aPlannerExpression
tree, of the number of record types that are passed by type filters in the tree.UnmatchedFieldsProperty A property for counting the total number ofKeyExpression
columns (i.e., field-likeKeyExpression
s such asFieldKeyExpression
andRecordTypeKeyExpression
) that are not matched with at least oneComparisons.Comparison
in a planner expression tree.