protected class JoinTask.AccessPathTask extends Object implements Callable<Void>, Comparable<JoinTask.AccessPathTask>
IPredicate and a (non-empty) collection of
IBindingSets each of which licenses the same asBound
predicate for the current join dimension. The task obtains the
corresponding IAccessPath and delegates each chunk visited on
that IAccessPath to a JoinTask.ChunkTask. Note that optionals
are also handled by this task.| Constructor and Description |
|---|
JoinTask.AccessPathTask(IPredicate<?> predicate,
Collection<IBindingSet> bindingSets)
Evaluate an
IBindingSet for the join dimension. |
| Modifier and Type | Method and Description |
|---|---|
Void |
call()
Evaluate the
accessPath against the bindingSets. |
int |
compareTo(JoinTask.AccessPathTask o)
Imposes an order based on the fromKey for the
IAccessPath associated with the task. |
boolean |
equals(JoinTask.AccessPathTask o)
Return
true iff the tasks are equivalent (same as
bound predicate). |
protected byte[] |
getFromKey()
Return the fromKey for the
IAccessPath generated
from the IBindingSet for this task. |
protected void |
handleJoin()
A vectored pipeline join (chunk at a time processing).
|
protected void |
handleStarJoin() |
String |
toString() |
public JoinTask.AccessPathTask(IPredicate<?> predicate, Collection<IBindingSet> bindingSets)
IBindingSet for the join dimension. When the
task runs, it will pair each element visited on the
IAccessPath with the asBound IPredicate. For
each element visited, if the binding is acceptable for the
constraints on the asBound IPredicate, then the task
will emit one IBindingSet for each source
IBindingSet.predicate - The asBound IPredicate.bindingSets - A collection of IBindingSets from the source
join dimension that all result in the same asBound
IPredicate.protected byte[] getFromKey()
IAccessPath generated
from the IBindingSet for this task.public boolean equals(JoinTask.AccessPathTask o)
true iff the tasks are equivalent (same as
bound predicate). This test may be used to eliminate duplicates
that arise when different source JoinTasks generate the
same IBindingSet.o - Another task.public Void call() throws Exception
accessPath against the bindingSets.
If nothing is accepted and IPredicate.isOptional() then
the bindingSets is output anyway (this implements the
semantics of OPTIONAL).call in interface Callable<Void>null.BufferClosedException - if there is an attempt to output a chunk of
IBindingSets or ISolutions and the
output buffer is an IBlockingBuffer (true for
all join dimensions exception the lastJoin and also
true for query on the lastJoin) and that
IBlockingBuffer has been closed.Exceptionprotected void handleJoin()
protected void handleStarJoin()
public int compareTo(JoinTask.AccessPathTask o)
IAccessPath associated with the task.compareTo in interface Comparable<JoinTask.AccessPathTask>o - Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.