Class RecordQueryUnorderedUnionPlan
- java.lang.Object
-
- com.apple.foundationdb.record.query.plan.plans.RecordQueryUnionPlanBase
-
- com.apple.foundationdb.record.query.plan.plans.RecordQueryUnorderedUnionPlan
-
- All Implemented Interfaces:
PlanHashable
,QueryPlan<FDBQueriedRecord<Message>>
,RecordQueryPlan
,RecordQueryPlanWithChildren
,Bindable
,Correlated<RelationalExpression>
,PlannerGraphRewritable
,RelationalExpressionWithChildren
,RelationalExpression
@API(EXPERIMENTAL) public class RecordQueryUnorderedUnionPlan extends RecordQueryUnionPlanBase
A query plan that returns results from two-or-more cursors as they as ready. Unlike theRecordQueryUnionPlan
, there are no ordering restrictions placed on the child plans (i.e., the children are free to return results in any order). However, this plan also makes no effort to remove duplicates from its children, and it also makes no guarantees as to what order it will return results.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.query.plan.temp.Correlated
Correlated.BoundEquivalence
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.PlanHashable
PlanHashable.PlanHashKind
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.query.plan.temp.RelationalExpression
RelationalExpression.CombineFunction<R,S>, RelationalExpression.CombinePredicate
-
-
Field Summary
-
Fields inherited from class com.apple.foundationdb.record.query.plan.plans.RecordQueryUnionPlanBase
LOGGER, UNION
-
Fields inherited from interface com.apple.foundationdb.record.query.plan.plans.QueryPlan
UNKNOWN_MAX_CARDINALITY
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RecordQueryUnorderedUnionPlan
from(RecordQueryPlan left, RecordQueryPlan right)
static RecordQueryUnorderedUnionPlan
from(List<RecordQueryPlan> children)
Set<CorrelationIdentifier>
getCorrelatedToWithoutChildren()
int
planHash(PlanHashable.PlanHashKind hashKind)
Return a hash similar tohashCode
, but with the additional guarantee that is is stable across JVMs.RecordQueryUnorderedUnionPlan
rebaseWithRebasedQuantifiers(AliasMap translationMap, List<Quantifier> rebasedQuantifiers)
PlannerGraph
rewritePlannerGraph(List<? extends PlannerGraph> childGraphs)
Method to rewrite the planner graph.String
toString()
RecordQueryUnorderedUnionPlan
withChildren(List<RecordQueryPlan> newChildren)
-
Methods inherited from class com.apple.foundationdb.record.query.plan.plans.RecordQueryUnionPlanBase
basePlanHash, equals, equalsWithoutChildren, execute, getAvailableFields, getChildren, getComplexity, getQuantifiers, getRelationalChildCount, hashCode, hashCodeWithoutChildren, isReverse, isStrictlySorted, logPlanStructure, strictlySorted
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.apple.foundationdb.record.PlanHashable
planHash
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.plans.QueryPlan
execute, execute, maxCardinality
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.plans.RecordQueryPlan
accept, execute, execute, execute, getQueryPlanChildren, structuralEquals, structuralEquals, structuralHashCode
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.plans.RecordQueryPlanWithChildren
getUsedIndexes, hasFullRecordScan, hasIndexScan, hasLoadBykeys, hasRecordScan
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.temp.RelationalExpression
acceptPropertyVisitor, adjustMatch, bindIdentities, bindTo, canCorrelate, compensate, enumerateUnboundCorrelatedTo, exactlySubsumedBy, findMatches, getResultValues, hasIncompatibleBoundQuantifiers, hasUnboundQuantifiers, match, match, semanticEquals, semanticEquals, semanticHashCode, show, subsumedBy
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.temp.expressions.RelationalExpressionWithChildren
getCorrelatedTo, rebase
-
-
-
-
Method Detail
-
toString
@Nonnull public String toString()
- Overrides:
toString
in classRecordQueryUnionPlanBase
-
from
@Nonnull public static RecordQueryUnorderedUnionPlan from(@Nonnull List<RecordQueryPlan> children)
-
from
@Nonnull public static RecordQueryUnorderedUnionPlan from(@Nonnull RecordQueryPlan left, @Nonnull RecordQueryPlan right)
-
getCorrelatedToWithoutChildren
@Nonnull public Set<CorrelationIdentifier> getCorrelatedToWithoutChildren()
-
rebaseWithRebasedQuantifiers
@Nonnull public RecordQueryUnorderedUnionPlan rebaseWithRebasedQuantifiers(@Nonnull AliasMap translationMap, @Nonnull List<Quantifier> rebasedQuantifiers)
-
withChildren
@Nonnull public RecordQueryUnorderedUnionPlan withChildren(@Nonnull List<RecordQueryPlan> newChildren)
- Specified by:
withChildren
in classRecordQueryUnionPlanBase
-
rewritePlannerGraph
@Nonnull public PlannerGraph rewritePlannerGraph(@Nonnull List<? extends PlannerGraph> childGraphs)
Description copied from interface:PlannerGraphRewritable
Method to rewrite the planner graph.- Parameters:
childGraphs
- planner graphs of children expression that already have been computed- Returns:
- a new planner graph that can combine the
childGraph
s in a meaningful way. Note that there is no obligation to use thechildGraph
s at all, this method can create a new independent planner graph completely from scratch.
-
planHash
public int planHash(@Nonnull PlanHashable.PlanHashKind hashKind)
Description copied from interface:PlanHashable
Return a hash similar tohashCode
, but with the additional guarantee that is is stable across JVMs.- Parameters:
hashKind
- the "kind" of hash to calculate. Each kind of hash has a particular logic with regards to included and excluded items.- Returns:
- a stable hash code
-
-