E
- BOp
s using the UNION of JOINs. However, also note that
this is only used for TM and that the focus store is always local
for TM.public class RelationFusedView<E> extends Object implements IRelation<E>
IRelation
s.Constructor and Description |
---|
RelationFusedView(IRelation<E> relation1,
IRelation<E> relation2)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
IAccessPath<E> |
getAccessPath(IIndexManager localIndexManagerIsIgnored,
IKeyOrder<E> keyOrderisIgnored,
IPredicate<E> predicate)
Deprecated.
Return the
IAccessPath for an IRelation using the
specified IIndexManager and IKeyOrder (core impl). |
IAccessPath<E> |
getAccessPath(IKeyOrder<E> keyOrderIsIgnored,
IPredicate<E> predicate)
Deprecated.
|
IAccessPath<E> |
getAccessPath(IPredicate<E> predicate)
Deprecated.
Return the best
IAccessPath for a relation given a predicate with
zero or more unbound variables. |
String |
getContainerNamespace()
Deprecated.
Not implemented for a fused view.
|
Class<E> |
getElementClass()
Deprecated.
Return the class for the generic type of this relation.
|
ExecutorService |
getExecutorService()
Deprecated.
The service used to run asynchronous or parallel tasks for the
IRelation . |
String |
getFQN(IKeyOrder<? extends E> keyOrder)
Deprecated.
The fully qualified name of the index.
|
IIndex |
getIndex(IKeyOrder<? extends E> keyOrder)
Deprecated.
Return the index for associated with the specified
IKeyOrder this
view of the relation. |
IIndexManager |
getIndexManager()
Deprecated.
The
IIndexManager for the first relation in the view. |
Set<String> |
getIndexNames()
Deprecated.
Return the fully qualified name of each index maintained by this
relation.
|
IKeyOrder<E> |
getKeyOrder(IPredicate<E> predicate)
Deprecated.
Return the
IKeyOrder for the predicate corresponding to the
perfect access path. |
Iterator<IKeyOrder<E>> |
getKeyOrders()
Deprecated.
Return the
IKeyOrder s corresponding to the registered indices for
this relation. |
String |
getNamespace()
Deprecated.
Not implemented for a fused view.
|
IKeyOrder<E> |
getPrimaryKeyOrder()
Deprecated.
The value for the first relation in the view.
|
IRelation<E> |
getRelation1()
Deprecated.
|
IRelation<E> |
getRelation2()
Deprecated.
|
long |
getTimestamp()
Deprecated.
Not implemented for a fused view.
|
RelationFusedView<E> |
init()
Deprecated.
Deferred initialization method is automatically invoked when the resource
is materialized by the
IResourceLocator . |
E |
newElement(List<BOp> a,
IBindingSet bindingSet)
Deprecated.
Create and return a new element.
|
public RelationFusedView<E> init()
ILocatableResource
IResourceLocator
. The implementation is
encouraged to strengthen the return type.init
in interface ILocatableResource<IRelation<E>>
public Set<String> getIndexNames()
IRelation
getIndexNames
in interface IRelation<E>
public IKeyOrder<E> getPrimaryKeyOrder()
getPrimaryKeyOrder
in interface IRelation<E>
public Iterator<IKeyOrder<E>> getKeyOrders()
IRelation
IKeyOrder
s corresponding to the registered indices for
this relation. [rather than getIndexNames?]getKeyOrders
in interface IRelation<E>
public ExecutorService getExecutorService()
IRelation
IRelation
.getExecutorService
in interface IRelation<E>
public E newElement(List<BOp> a, IBindingSet bindingSet)
IRelation
newElement
in interface IRelation<E>
a
- An ordered list of variables and/or constants.bindingSet
- A set of bindings.public Class<E> getElementClass()
IRelation
getElementClass
in interface IRelation<E>
public IIndexManager getIndexManager()
IIndexManager
for the first relation in the view.getIndexManager
in interface IRelation<E>
public long getTimestamp()
TemporaryStore
.)getTimestamp
in interface ILocatableResource<IRelation<E>>
UnsupportedOperationException
- always.public String getNamespace()
getNamespace
in interface ILocatableResource<IRelation<E>>
UnsupportedOperationException
- always.public String getContainerNamespace()
getContainerNamespace
in interface ILocatableResource<IRelation<E>>
null
if there is no containing resource.UnsupportedOperationException
- always.public String getFQN(IKeyOrder<? extends E> keyOrder)
IRelation
public IIndex getIndex(IKeyOrder<? extends E> keyOrder)
IRelation
IKeyOrder
this
view of the relation.public IKeyOrder<E> getKeyOrder(IPredicate<E> predicate)
IRelation
IKeyOrder
for the predicate corresponding to the
perfect access path. A perfect access path is one where the bound values
in the predicate form a prefix in the key space of the corresponding
index.getKeyOrder
in interface IRelation<E>
IKeyOrder
for the perfect access path -or-
null
if there is no index which provides a perfect
access path for that predicate.public IAccessPath<E> getAccessPath(IPredicate<E> predicate)
IRelation
IAccessPath
for a relation given a predicate with
zero or more unbound variables.
If there is an IIndex
that directly corresponds to the natural
order implied by the variable pattern on the predicate then the access
path should use that index. Otherwise you should choose the best index
given the constraints and make sure that the IAccessPath
incorporates additional filters that will allow you to filter out the
irrelevant ITuple
s during the scan - this is very important when
the index is remote!
If there are any IElementFilter
s then the access path MUST
incorporate those constraints such that only elements that satisfy the
constraints may be visited.
Whether the constraints arise because of the lack of a perfect index for
the access path or because they were explicitly specified for the
IPredicate
, those constraints should be translated into
constraints imposed on the underlying ITupleIterator
and sent
with it to be evaluated local to the data.
Note: Filters should be specified when the IAccessPath
is
constructed so that they will be evaluated on the data service rather
than materializing the elements and then filtering then. This can be
accomplished by adding the filter as a constraint on the predicate when
specifying the access path.
getAccessPath
in interface IRelation<E>
predicate
- The constraint on the elements to be visited.IAccessPath
for that IPredicate
.IRelation.getAccessPath(IKeyOrder, IPredicate)
public IAccessPath<E> getAccessPath(IKeyOrder<E> keyOrderIsIgnored, IPredicate<E> predicate)
IRelation
getAccessPath
in interface IRelation<E>
keyOrderIsIgnored
- Identifies which index to use (required).predicate
- The predicate (required).IAccessPath
.IRelation.getAccessPath(IIndexManager, IKeyOrder, IPredicate)
public IAccessPath<E> getAccessPath(IIndexManager localIndexManagerIsIgnored, IKeyOrder<E> keyOrderisIgnored, IPredicate<E> predicate)
IRelation
IAccessPath
for an IRelation
using the
specified IIndexManager
and IKeyOrder
(core impl).
AccessPath
is responsible for
interpreting the following IPredicate
IPredicate#Annotations
:
IPredicate.Annotations#ACCESS_PATH_EXPANDER
IIndexManager
when running against a standalone
database. That IIndexManager
is available from
IRelation.getIndexManager()
.
Scale-out operators
which are
BOpEvaluationContext.SHARDED
or
BOpEvaluationContext.HASHED
require access to the local index
manager on the data service and signal this using:
BOpEvaluationContext.SHARDED
or
BOpEvaluationContext.HASHED
(on a join); andIPredicate.Annotations#PARTITION_ID
(for a shard-wise
access path).
Scale-out operators
MAY use remote access paths and signal
this using:
BOpEvaluationContext.ANY
(on a join); andIPredicate.Annotations#REMOTE_ACCESS_PATH
to
true
.IRelation.getIndexManager()
is used to obtain the
IBigdataFederation
from which the IRelation
definition
was materialized.getAccessPath
in interface IRelation<E>
localIndexManagerIsIgnored
- The local index manager (optional).keyOrderisIgnored
- Identifies which index to use (required).predicate
- The predicate (required).IAccessPath
.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.