Class Join
- java.lang.Object
-
- org.apache.jena.sparql.engine.join.Join
-
public class Join extends java.lang.ObjectAPI to various join algorithms
-
-
Constructor Summary
Constructors Constructor Description Join()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static QueryIteratorhashJoin(JoinKey joinKey, QueryIterator left, QueryIterator right, ExecutionContext execCxt)Evaluate using a hash join.static QueryIteratorhashJoin(QueryIterator left, QueryIterator right, ExecutionContext execCxt)Evaluate using a hash join.static QueryIteratorhashLeftJoin(JoinKey joinKey, QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)Left outer join by using hash join.static QueryIteratorhashLeftJoin(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)Left outer join by using hash join.static QueryIteratorjoin(QueryIterator left, QueryIterator right, ExecutionContext execCxt)Standard entry point to a join of two streams.static QueryIteratorleftJoin(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)Standard entry point to a left join of two streams.static QueryIteratornestedLoopJoin(QueryIterator left, QueryIterator right, ExecutionContext execCxt)Inner loop join.static QueryIteratornestedLoopJoinBasic(QueryIterator left, QueryIterator right, ExecutionContext execCxt)Very simple, materializing version - useful for debugging.static QueryIteratornestedLoopLeftJoin(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)Left loop join.static QueryIteratornestedLoopLeftJoinBasic(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)Very simple, materializing version for leftjoin - useful for debugging.
-
-
-
Method Detail
-
join
public static QueryIterator join(QueryIterator left, QueryIterator right, ExecutionContext execCxt)
Standard entry point to a join of two streams. This is not a substitution/index join. (SeeOpExecutorfor streamed execution using substitution).- Parameters:
left-right-execCxt-- Returns:
- QueryIterator
-
leftJoin
public static QueryIterator leftJoin(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)
Standard entry point to a left join of two streams. This is not a substitution/index join. (SeeOpExecutorfor streamed execution using substitution).- Parameters:
left-right-conditions-execCxt-- Returns:
- QueryIterator
-
nestedLoopJoin
public static QueryIterator nestedLoopJoin(QueryIterator left, QueryIterator right, ExecutionContext execCxt)
Inner loop join. Cancellable.- Parameters:
left- Left hand sideright- Right hand sideexecCxt- ExecutionContext- Returns:
- QueryIterator
-
nestedLoopLeftJoin
public static QueryIterator nestedLoopLeftJoin(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)
Left loop join. Cancellable.- Parameters:
left- Left hand sideright- Right hand sideexecCxt- ExecutionContext- Returns:
- QueryIterator
-
hashJoin
public static QueryIterator hashJoin(QueryIterator left, QueryIterator right, ExecutionContext execCxt)
Evaluate using a hash join.- Parameters:
left- Left hand sideright- Right hand sideexecCxt- ExecutionContext- Returns:
- QueryIterator
-
hashJoin
public static QueryIterator hashJoin(JoinKey joinKey, QueryIterator left, QueryIterator right, ExecutionContext execCxt)
Evaluate using a hash join.- Parameters:
joinKey- The key for the probe table.left- Left hand sideright- Right hand sideexecCxt- ExecutionContext- Returns:
- QueryIterator
-
hashLeftJoin
public static QueryIterator hashLeftJoin(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)
Left outer join by using hash join. Normally, this is hashing the right hand side and streaming the left. The reverse implementation (hash left, stream right) is also available.- Parameters:
left-right-conditions-execCxt-- Returns:
- QueryIterator
-
hashLeftJoin
public static QueryIterator hashLeftJoin(JoinKey joinKey, QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)
Left outer join by using hash join. Normally, this is hashing the right hand side and streaming the left. The reverse implementation (hash left, stream right) is also available.- Parameters:
joinKey-left-right-conditions-execCxt-- Returns:
- QueryIterator
-
nestedLoopJoinBasic
public static QueryIterator nestedLoopJoinBasic(QueryIterator left, QueryIterator right, ExecutionContext execCxt)
Very simple, materializing version - useful for debugging. Builds output early. Materializes left, streams right. Does not scale. No cancellation, no stats.
-
nestedLoopLeftJoinBasic
public static QueryIterator nestedLoopLeftJoinBasic(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt)
Very simple, materializing version for leftjoin - useful for debugging. Builds output early. Materializes right, streams left. Does not scale.
-
-