Class FullUnorderedScanExpression
- java.lang.Object
-
- com.apple.foundationdb.record.query.plan.temp.expressions.FullUnorderedScanExpression
-
- All Implemented Interfaces:
Bindable
,PlannerGraphRewritable
,RelationalExpression
@API(EXPERIMENTAL) public class FullUnorderedScanExpression extends Object implements RelationalExpression, PlannerGraphRewritable
A planner expression representing a full, unordered scan of the records by primary key, which is the logical version of aRecordQueryScanPlan
withScanComparisons.EMPTY
. Unlike aRecordQueryScanPlan
, aFullUnorderedScanExpression
is not implicitly ordered by the primary key.This expression is useful as the source of records for the initial planner expression produced from a
RecordQuery
.
-
-
Constructor Summary
Constructors Constructor Description FullUnorderedScanExpression(Set<String> recordTypes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
boolean
equalsWithoutChildren(RelationalExpression otherExpression)
List<? extends Quantifier>
getQuantifiers()
Return an iterator of references to the children of this planner expression.Set<String>
getRecordTypes()
int
hashCode()
PlannerGraph
rewritePlannerGraph(List<? extends PlannerGraph> childGraphs)
Method to rewrite the planner graph.String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.apple.foundationdb.record.query.plan.temp.RelationalExpression
acceptPropertyVisitor, bindTo, show
-
-
-
-
Method Detail
-
getQuantifiers
@Nonnull public List<? extends Quantifier> getQuantifiers()
Description copied from interface:RelationalExpression
Return an iterator of references to the children of this planner expression. The iterators returned by different calls are guaranteed to be independent (i.e., advancing one will not advance another). However, they might point to the same object, as whenCollections.emptyIterator()
is returned. The returned iterator should be treated as an immutable object and may throw an exception ifIterator.remove()
is called. The iterator must return its elements in a consistent order.- Specified by:
getQuantifiers
in interfaceRelationalExpression
- Returns:
- an iterator of references to the children of this planner expression
-
equalsWithoutChildren
public boolean equalsWithoutChildren(@Nonnull RelationalExpression otherExpression)
- Specified by:
equalsWithoutChildren
in interfaceRelationalExpression
-
rewritePlannerGraph
@Nonnull public PlannerGraph rewritePlannerGraph(@Nonnull List<? extends PlannerGraph> childGraphs)
Description copied from interface:PlannerGraphRewritable
Method to rewrite the planner graph.- Specified by:
rewritePlannerGraph
in interfacePlannerGraphRewritable
- 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.
-
-