Class FieldWithComparisonCountProperty
- java.lang.Object
-
- com.apple.foundationdb.record.query.plan.temp.properties.FieldWithComparisonCountProperty
-
- All Implemented Interfaces:
PlannerProperty<Integer>
@API(EXPERIMENTAL) public class FieldWithComparisonCountProperty extends Object implements PlannerProperty<Integer>
A property that counts the number ofFieldWithComparison
s that appear in a planner expression tree. This property is used as the number of "unsatisfied filters" when picking between query plans that scan different indexes.
-
-
Constructor Summary
Constructors Constructor Description FieldWithComparisonCountProperty()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static int
evaluate(ExpressionRef<? extends RelationalExpression> ref)
static int
evaluate(RelationalExpression expression)
Integer
evaluateAtExpression(RelationalExpression expression, List<Integer> childResults)
Evaluate the property at the given expression, using the results of evaluating the property at its children.Integer
evaluateAtRef(ExpressionRef<? extends RelationalExpression> ref, List<Integer> memberResults)
Evaluate the property at the given reference, using the results of evaluating the property at its members.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.temp.PlannerProperty
evaluateAtQuantifier, shouldVisit, shouldVisit, shouldVisit
-
-
-
-
Method Detail
-
evaluateAtExpression
@Nonnull public Integer evaluateAtExpression(@Nonnull RelationalExpression expression, @Nonnull List<Integer> childResults)
Description copied from interface:PlannerProperty
Evaluate the property at the given expression, using the results of evaluating the property at its children. Called on nodes in the graph in visit post-order of the depth-first traversal of the graph. That is, as each expression is visited (after all of its children have been visited, if applicable),evaluateAtExpression()
is called on that expression.- Specified by:
evaluateAtExpression
in interfacePlannerProperty<Integer>
- Parameters:
expression
- the cursor to visitchildResults
- the results of the property evaluated at the children ofexpression
- Returns:
- the value of property at the given expression
-
evaluateAtRef
@Nonnull public Integer evaluateAtRef(@Nonnull ExpressionRef<? extends RelationalExpression> ref, @Nonnull List<Integer> memberResults)
Description copied from interface:PlannerProperty
Evaluate the property at the given reference, using the results of evaluating the property at its members. Called on nodes in the graph in visit post-order of the depth-first traversal of the graph. That is, as each reference is visited (after all of its members have been visited, if applicable),evaluateAtRef()
is called on that reference.- Specified by:
evaluateAtRef
in interfacePlannerProperty<Integer>
- Parameters:
ref
- the expression reference to visitmemberResults
- the results of the property evaluated at the members ofref
- Returns:
- the value of property at the given reference
-
evaluate
public static int evaluate(ExpressionRef<? extends RelationalExpression> ref)
-
evaluate
public static int evaluate(@Nonnull RelationalExpression expression)
-
-