@API(value=EXPERIMENTAL) public interface RecordQueryPlanWithChild extends RecordQueryPlanWithChildren
Modifier and Type | Method and Description |
---|---|
RecordQueryPlan |
getChild() |
default List<RecordQueryPlan> |
getChildren()
Returns the (zero or more)
RecordQueryPlan children of this plan. |
default int |
getRelationalChildCount() |
default Set<String> |
getUsedIndexes()
Returns a set of names of the indexes used by this plan (and its sub-plans).
|
default boolean |
hasFullRecordScan()
Indicates whether this plan (or one of its components) must perform a scan over all records in the store directly
rather than going through a secondary index.
|
default boolean |
hasIndexScan(String indexName)
Indicates whether this plan scans the given index.
|
default boolean |
hasLoadBykeys()
Indicates whether this plan (or one of its components) loads records by their primary key.
|
default boolean |
hasRecordScan()
Indicates whether this plan (or one of its components) scans at least a subset of the record range directly
rather than going through a secondary index.
|
execute, execute, execute, execute, getQueryPlanChildren
execute, execute, getComplexity, isReverse, logPlanStructure
combineHashes, iterablePlanHash, objectPlanHash, objectsPlanHash, planHash, planHash, planHash, planHashUnordered, stringHashUnordered
acceptPropertyVisitor, bindTo, equalsWithoutChildren, fromRecordQuery, getPlannerExpressionChildren, show
@Nonnull default List<RecordQueryPlan> getChildren()
RecordQueryPlan
RecordQueryPlan
children of this plan.
Warning: This part of the API is undergoing active development. At some point in the future,
the return type of this method will change to allow it to return a list of generic QueryPlan
s.
At current, every RecordQueryPlan
can only have other RecordQueryPlan
s as children.
However, this is not guaranteed to be the case in the future. This method has been marked as
API.Status#UNSTABLE
as of version 2.5.
getChildren
in interface RecordQueryPlan
RecordQueryPlan getChild()
default int getRelationalChildCount()
getRelationalChildCount
in interface RelationalExpressionWithChildren
default boolean hasRecordScan()
QueryPlan
hasRecordScan
in interface QueryPlan<FDBQueriedRecord<Message>>
hasRecordScan
in interface RecordQueryPlanWithChildren
true
if this plan (or one of its components) scans at least a subset of the records directlydefault boolean hasFullRecordScan()
QueryPlan
hasRecordScan
for the comparison between two methods.hasFullRecordScan
in interface QueryPlan<FDBQueriedRecord<Message>>
hasFullRecordScan
in interface RecordQueryPlanWithChildren
true
if this plan (or one of its components) must perform a scan over all records in the
store directlydefault boolean hasIndexScan(@Nonnull String indexName)
QueryPlan
hasIndexScan
in interface QueryPlan<FDBQueriedRecord<Message>>
hasIndexScan
in interface RecordQueryPlanWithChildren
indexName
- the name of the index to check fortrue
if this plan (or one of its children) scans the given index@Nonnull default Set<String> getUsedIndexes()
QueryPlan
getUsedIndexes
in interface QueryPlan<FDBQueriedRecord<Message>>
getUsedIndexes
in interface RecordQueryPlanWithChildren
default boolean hasLoadBykeys()
QueryPlan
hasLoadBykeys
in interface QueryPlan<FDBQueriedRecord<Message>>
hasLoadBykeys
in interface RecordQueryPlanWithChildren
true
if this plan (or one of its components) loads records by their primary key