protected class JoinTask.AccessPathTask extends Object implements Callable<Void>, Comparable<JoinTask.AccessPathTask>
IPredicate
and a (non-empty) collection of
IBindingSet
s 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 IBindingSet
s 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 JoinTask
s 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
IBindingSet
s or ISolution
s 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.Exception
protected 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.