Package com.apple.foundationdb.record.query.plan.temp.properties

A package for planner properties (in the sense that Cascades uses them).

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.