public class EmptyAccessPath<E> extends Object implements IAccessPath<E>
| Constructor and Description |
|---|
EmptyAccessPath()
Ctor variant does not specify the
getPredicate() or the
getKeyOrder() and those methods will throw an
UnsupportedOperationException if invoked. |
EmptyAccessPath(IPredicate<E> predicate,
IKeyOrder<E> keyOrder)
Note: the
getPredicate() and getKeyOrder() and methods
will throw an UnsupportedOperationException if the corresponding
argument is null. |
| Modifier and Type | Method and Description |
|---|---|
IIndex |
getIndex()
The index selected for the access path.
|
IKeyOrder<E> |
getKeyOrder()
The order in which the elements will be visited.
|
IPredicate<E> |
getPredicate()
The constraints on the
IAccessPath. |
boolean |
isEmpty()
True iff the access path is empty (there are no matches for the
IPredicate) This is more conclusive than #rangeCount()
since you MAY have a non-zero range count when the key range is in fact
empty (there may be "deleted" index entries within the key range). |
IChunkedOrderedIterator<E> |
iterator()
Visits nothing.
|
IChunkedOrderedIterator<E> |
iterator(long offset,
long limit,
int capacity)
Visits nothing.
|
long |
rangeCount(boolean exact)
Return the maximum #of elements spanned by the
IPredicate. |
long |
removeAll()
Does nothing and always returns ZERO(0).
|
public EmptyAccessPath()
getPredicate() or the
getKeyOrder() and those methods will throw an
UnsupportedOperationException if invoked.public EmptyAccessPath(IPredicate<E> predicate, IKeyOrder<E> keyOrder)
getPredicate() and getKeyOrder() and methods
will throw an UnsupportedOperationException if the corresponding
argument is null.predicate - keyOrder - public IPredicate<E> getPredicate()
IAccessPath.getPredicate in interface IAbstractAccessPath<E>UnsupportedOperationException - unless the caller specified an IPredicate to the
ctor.public IKeyOrder<E> getKeyOrder()
getKeyOrder in interface IAccessPath<E>UnsupportedOperationException - unless the caller specified an IKeyOrder to the ctor.public IIndex getIndex()
Note: The access path may incorporate additional constraints from the
specified IPredicate that are not present on the IIndex
returned by this method.
getIndex in interface IAccessPath<E>UnsupportedOperationException - since no index was selected.public boolean isEmpty()
IPredicate) This is more conclusive than #rangeCount()
since you MAY have a non-zero range count when the key range is in fact
empty (there may be "deleted" index entries within the key range).
Always returns true.
isEmpty in interface IAbstractAccessPath<E>public long rangeCount(boolean exact)
IPredicate.
Note: When there is an IFilter on the IPredicate the
exact range count MUST apply that IFilter, which means that it
will be required to traverse the index counting tuples which pass the
IFilter. However, IFilters are ignored for the fast
range count.
Always returns ZERO(0).
rangeCount in interface IAbstractAccessPath<E>exact - When true, the result will be an exact count and
may require a key-range scan. When false, the
result will be an upper bound IFF delete markers are
provisioned for the backing index (delete markers are required
for transactions and for scale-out indices).IRangeQuerypublic IChunkedOrderedIterator<E> iterator()
iterator in interface IAccessPath<E>IRelation.getAccessPath(IPredicate)public IChunkedOrderedIterator<E> iterator(long offset, long limit, int capacity)
iterator in interface IAccessPath<E>offset - The first element accepted by the iterator that it will visit
(materialize for the client). The offset must be non-negative.
This is ZERO (0L) to visit all accepted elements.limit - The last element accepted by the iterator that it will visit
(materialize for the client). The limit must be non-negative.
This is ZERO (0L) to visit all accepted elements (the value
Long.MAX_VALUE is interpreted exactly like ZERO(0L)).capacity - The maximum capacity for the buffer used by the iterator. When
ZERO(0), a default capacity will be used. When a limit
is specified, the capacity will never exceed the limit.IAccessPath. This way they
will be correctly applied when IAbstractAccessPath.isEmpty() is implemented
using the IAccessPath.iterator() to determine if any elements can be
visited.public long removeAll()
removeAll in interface IAbstractAccessPath<E>Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.