public class IndexEntrySourceScanExpression extends Object implements RelationalExpression
RecordQueryIndexPlan
that represents
a partially-implemented index scan. The primary difference between the two is that a RecordQueryIndexPlan
requires a fully formed ScanComparisons
, which does not track
which comparisons belong to which parts of the index's key expression. In contrast, this logical index scan has a
ViewExpressionComparisons
which explicitly tracks that information. Except for the final "implementation"
rules, a planner rule should generally prefer to produce and consume IndexEntrySourceScanExpression
s so that
important information about the index key expression is retained.Constructor and Description |
---|
IndexEntrySourceScanExpression(IndexEntrySource indexEntrySource,
IndexScanType scanType,
ViewExpressionComparisons comparisons,
boolean reverse) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
boolean |
equalsWithoutChildren(RelationalExpression otherExpression) |
ViewExpressionComparisons |
getComparisons() |
IndexEntrySource |
getIndexEntrySource() |
String |
getIndexName() |
Iterator<? extends ExpressionRef<? extends RelationalExpression>> |
getPlannerExpressionChildren()
Return an iterator of references to the children of this planner expression.
|
IndexScanType |
getScanType() |
int |
hashCode() |
boolean |
isReverse() |
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
acceptPropertyVisitor, bindTo, fromRecordQuery, show
public IndexEntrySourceScanExpression(@Nonnull IndexEntrySource indexEntrySource, @Nonnull IndexScanType scanType, @Nonnull ViewExpressionComparisons comparisons, boolean reverse)
@Nonnull public Iterator<? extends ExpressionRef<? extends RelationalExpression>> getPlannerExpressionChildren()
RelationalExpression
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 RelationalExpression
@Nonnull public IndexEntrySource getIndexEntrySource()
@Nonnull public IndexScanType getScanType()
@Nonnull public ViewExpressionComparisons getComparisons()
public boolean isReverse()
public boolean equalsWithoutChildren(@Nonnull RelationalExpression otherExpression)
equalsWithoutChildren
in interface RelationalExpression