E - BOps 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>
IRelations.| 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
IKeyOrders 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()
ILocatableResourceIResourceLocator. The implementation is
encouraged to strengthen the return type.init in interface ILocatableResource<IRelation<E>>public Set<String> getIndexNames()
IRelationgetIndexNames in interface IRelation<E>public IKeyOrder<E> getPrimaryKeyOrder()
getPrimaryKeyOrder in interface IRelation<E>public Iterator<IKeyOrder<E>> getKeyOrders()
IRelationIKeyOrders corresponding to the registered indices for
this relation. [rather than getIndexNames?]getKeyOrders in interface IRelation<E>public ExecutorService getExecutorService()
IRelationIRelation.getExecutorService in interface IRelation<E>public E newElement(List<BOp> a, IBindingSet bindingSet)
IRelationnewElement in interface IRelation<E>a - An ordered list of variables and/or constants.bindingSet - A set of bindings.public Class<E> getElementClass()
IRelationgetElementClass 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)
IRelationpublic IIndex getIndex(IKeyOrder<? extends E> keyOrder)
IRelationIKeyOrder this
view of the relation.public IKeyOrder<E> getKeyOrder(IPredicate<E> predicate)
IRelationIKeyOrder 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)
IRelationIAccessPath 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 ITuples during the scan - this is very important when
the index is remote!
If there are any IElementFilters 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)
IRelationgetAccessPath 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)
IRelationIAccessPath 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_EXPANDERIIndexManager 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.