Interface RecordQueryPlanWithChildren
-
- All Superinterfaces:
Bindable
,Correlated<RelationalExpression>
,PlanHashable
,PlannerGraphRewritable
,QueryPlan<FDBQueriedRecord<Message>>
,RecordQueryPlan
,RelationalExpression
,RelationalExpressionWithChildren
- All Known Subinterfaces:
RecordQueryPlanWithChild
- All Known Implementing Classes:
RecordQueryFetchFromPartialRecordPlan
,RecordQueryFilterPlan
,RecordQueryInJoinPlan
,RecordQueryInParameterJoinPlan
,RecordQueryIntersectionPlan
,RecordQueryInValuesJoinPlan
,RecordQueryPredicateFilterPlan
,RecordQueryScoreForRankPlan
,RecordQueryTypeFilterPlan
,RecordQueryUnionPlan
,RecordQueryUnionPlanBase
,RecordQueryUnorderedDistinctPlan
,RecordQueryUnorderedPrimaryKeyDistinctPlan
,RecordQueryUnorderedUnionPlan
@API(EXPERIMENTAL) public interface RecordQueryPlanWithChildren extends RecordQueryPlan, RelationalExpressionWithChildren
A query plan with child plans.
-
-
Method Summary
All Methods Instance Methods Default Methods Modifier and Type Method Description 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.-
Methods inherited from interface com.apple.foundationdb.record.PlanHashable
planHash
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.temp.explain.PlannerGraphRewritable
rewritePlannerGraph
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.plans.QueryPlan
execute, execute, getComplexity, isReverse, logPlanStructure
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.plans.RecordQueryPlan
accept, execute, execute, execute, execute, getAvailableFields, getChildren, getQueryPlanChildren, structuralEquals, structuralEquals, structuralHashCode
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.temp.RelationalExpression
acceptPropertyVisitor, bindTo, canCorrelate, equalsWithoutChildren, getQuantifiers, hashCodeWithoutChildren, semanticEquals, semanticEquals, semanticHashCode, show
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.temp.expressions.RelationalExpressionWithChildren
getCorrelatedTo, getCorrelatedToWithoutChildren, getRelationalChildCount, rebase, rebaseWithRebasedQuantifiers
-
-
-
-
Method Detail
-
hasRecordScan
default boolean hasRecordScan()
Description copied from interface:QueryPlan
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. A plan may only scan over a subset of all records. Someone might not use any secondary indexes explicitly, but they might make use of the primary key index. For example, if they had a compound primary key, and they issued a query for all records that had some value for the first element of their primary key, the planner will produce a plan which scans over a subset of all records.- Specified by:
hasRecordScan
in interfaceQueryPlan<FDBQueriedRecord<Message>>
- Returns:
true
if this plan (or one of its components) scans at least a subset of the records directly
-
hasFullRecordScan
default boolean hasFullRecordScan()
Description copied from interface:QueryPlan
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. SeehasRecordScan
for the comparison between two methods.- Specified by:
hasFullRecordScan
in interfaceQueryPlan<FDBQueriedRecord<Message>>
- Returns:
true
if this plan (or one of its components) must perform a scan over all records in the store directly
-
hasIndexScan
default boolean hasIndexScan(@Nonnull String indexName)
Description copied from interface:QueryPlan
Indicates whether this plan scans the given index.- Specified by:
hasIndexScan
in interfaceQueryPlan<FDBQueriedRecord<Message>>
- Parameters:
indexName
- the name of the index to check for- Returns:
true
if this plan (or one of its children) scans the given index
-
getUsedIndexes
@Nonnull default Set<String> getUsedIndexes()
Description copied from interface:QueryPlan
Returns a set of names of the indexes used by this plan (and its sub-plans).- Specified by:
getUsedIndexes
in interfaceQueryPlan<FDBQueriedRecord<Message>>
- Returns:
- an set of indexes used by this plan
-
hasLoadBykeys
default boolean hasLoadBykeys()
Description copied from interface:QueryPlan
Indicates whether this plan (or one of its components) loads records by their primary key.- Specified by:
hasLoadBykeys
in interfaceQueryPlan<FDBQueriedRecord<Message>>
- Returns:
true
if this plan (or one of its components) loads records by their primary key
-
-