java.lang.Object
org.apache.jena.sparql.engine.join.Join
API to various join algorithms
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic 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(JoinKey joinKey, QueryIterator left, QueryIterator right, ExecutionContext execCxt) Standard entry point to a join of two streams.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.
-
Constructor Details
-
Join
public Join()
-
-
Method Details
-
join
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
-
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. (SeeOpExecutorfor 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. (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.
-