java.lang.Object
org.apache.jena.sparql.engine.join.Join
API to various join algorithms
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic QueryIterator
hashJoin
(JoinKey joinKey, QueryIterator left, QueryIterator right, ExecutionContext execCxt) Evaluate using a hash join.static QueryIterator
hashJoin
(QueryIterator left, QueryIterator right, ExecutionContext execCxt) Evaluate using a hash join.static QueryIterator
hashLeftJoin
(JoinKey joinKey, QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt) Left outer join by using hash join.static QueryIterator
hashLeftJoin
(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt) Left outer join by using hash join.static QueryIterator
join
(JoinKey joinKey, QueryIterator left, QueryIterator right, ExecutionContext execCxt) Standard entry point to a join of two streams.static QueryIterator
join
(QueryIterator left, QueryIterator right, ExecutionContext execCxt) Standard entry point to a join of two streams.static QueryIterator
leftJoin
(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt) Standard entry point to a left join of two streams.static QueryIterator
nestedLoopJoin
(QueryIterator left, QueryIterator right, ExecutionContext execCxt) Inner loop join.static QueryIterator
nestedLoopJoinBasic
(QueryIterator left, QueryIterator right, ExecutionContext execCxt) Very simple, materializing version - useful for debugging.static QueryIterator
nestedLoopLeftJoin
(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt) Left loop join.static QueryIterator
nestedLoopLeftJoinBasic
(QueryIterator left, QueryIterator right, ExprList conditions, ExecutionContext execCxt) Very simple, materializing version for leftjoin - useful for debugging.
-
Constructor Details
-
Join
public Join()
-
-
Method Details
-
join
Standard entry point to a join of two streams. This is not a substitution/index join. (SeeOpExecutor
for streamed execution using substitution).- Parameters:
left
-right
-execCxt
-- Returns:
- QueryIterator
-
join
public static QueryIterator join(JoinKey joinKey, QueryIterator left, QueryIterator right, ExecutionContext execCxt) Standard entry point to a join of two streams. This is not a substitution/index join. (SeeOpExecutor
for streamed execution using substitution).- Parameters:
joinKey
-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. (SeeOpExecutor
for 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.
-