@API(value=MAINTAINED) public class RecordQueryScoreForRankPlan extends Object implements RecordQueryPlanWithChild
Modifier and Type | Class and Description |
---|---|
static class |
RecordQueryScoreForRankPlan.ScoreForRank
A single conversion of a rank to a score to be bound to some name.
|
Constructor and Description |
---|
RecordQueryScoreForRankPlan(RecordQueryPlan plan,
List<RecordQueryScoreForRankPlan.ScoreForRank> ranks) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
boolean |
equalsWithoutChildren(PlannerExpression otherExpression) |
<M extends Message> |
execute(FDBRecordStoreBase<M> store,
EvaluationContext context,
byte[] continuation,
ExecuteProperties executeProperties)
Execute this query plan.
|
RecordQueryPlan |
getChild() |
int |
getComplexity()
Returns an integer representing the "complexity" of the generated plan.
|
Iterator<? extends ExpressionRef<? extends PlannerExpression>> |
getPlannerExpressionChildren()
Return an iterator of references to the children of this planner expression.
|
List<RecordQueryScoreForRankPlan.ScoreForRank> |
getRanks() |
int |
hashCode() |
boolean |
isReverse()
Indicates whether this plan will return values in "reverse" order from the
natural order of results of this plan.
|
void |
logPlanStructure(StoreTimer timer)
Adds one to an appropriate
StoreTimer counter for each plan and subplan of this plan, allowing tracking
of which plans are being chosen (e.g. |
int |
planHash()
Return a hash similar to
hashCode , but with the additional guarantee that is is stable across JVMs. |
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getChildren, getRelationalChildCount, getUsedIndexes, hasFullRecordScan, hasIndexScan, hasLoadBykeys, hasRecordScan
asNestedWith, asUnnestedWith, execute, execute, execute, getQueryPlanChildren
execute, execute
combineHashes, iterablePlanHash, objectPlanHash, objectsPlanHash, planHash, planHash, planHashUnordered, stringHashUnordered
fromRecordQuery
acceptPropertyVisitor, bindTo
public RecordQueryScoreForRankPlan(RecordQueryPlan plan, List<RecordQueryScoreForRankPlan.ScoreForRank> ranks)
@Nonnull public <M extends Message> RecordCursor<FDBQueriedRecord<M>> execute(@Nonnull FDBRecordStoreBase<M> store, @Nonnull EvaluationContext context, @Nullable byte[] continuation, @Nonnull ExecuteProperties executeProperties)
RecordQueryPlan
execute
in interface RecordQueryPlan
M
- type used to represent stored recordsstore
- record store from which to fetch recordscontext
- evaluation context containing parameter bindingscontinuation
- continuation from a previous execution of this same planexecuteProperties
- limits on execution@Nonnull public List<RecordQueryScoreForRankPlan.ScoreForRank> getRanks()
@Nonnull public RecordQueryPlan getChild()
getChild
in interface RecordQueryPlanWithChild
@Nonnull @API(value=EXPERIMENTAL) public Iterator<? extends ExpressionRef<? extends PlannerExpression>> getPlannerExpressionChildren()
PlannerExpression
Collections.emptyIterator()
is returned. The returned iterator should
be treated as an immutable object and may throw an exception if Iterator.remove()
is called.
The iterator must return its elements in a consistent order.getPlannerExpressionChildren
in interface PlannerExpression
public boolean isReverse()
QueryPlan
true
if the plan
returns elements in descending order and false
if the elements are
returned in ascending order.isReverse
in interface QueryPlan<FDBQueriedRecord<Message>>
true
if this plan returns elements in reverse order@API(value=EXPERIMENTAL) public boolean equalsWithoutChildren(@Nonnull PlannerExpression otherExpression)
equalsWithoutChildren
in interface PlannerExpression
public int planHash()
PlanHashable
hashCode
, but with the additional guarantee that is is stable across JVMs.planHash
in interface PlanHashable
public void logPlanStructure(StoreTimer timer)
QueryPlan
StoreTimer
counter for each plan and subplan of this plan, allowing tracking
of which plans are being chosen (e.g. index scan vs. full scan).logPlanStructure
in interface QueryPlan<FDBQueriedRecord<Message>>
timer
- the counters to incrementpublic int getComplexity()
QueryPlan
getComplexity
in interface QueryPlan<FDBQueriedRecord<Message>>