Class BaseForExecOpIndexNestedLoopsJoinWithRequestOps<QueryType extends Query,MemberType extends FederationMember>
java.lang.Object
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForUnaryExecOpWithCollectedInput
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpIndexNestedLoopsJoinWithRequestOps<QueryType,MemberType>
- All Implemented Interfaces:
StatsProvider,ExecutableOperator,UnaryExecutableOp
- Direct Known Subclasses:
ExecOpIndexNestedLoopsJoinTPF
public abstract class BaseForExecOpIndexNestedLoopsJoinWithRequestOps<QueryType extends Query,MemberType extends FederationMember>
extends BaseForUnaryExecOpWithCollectedInput
Abstract base class to implement index nested loops joins by using request
operators. The possibility to rely on a request operator is particularly
useful in cases in which this operator implements paging, because the
alternative would be the need to re-implement paging again in the nested
loops join algorithm of potential subclasses of this base class.
For an abstract base class that issues requests directly (instead of using
request operators), use
BaseForExecOpIndexNestedLoopsJoinWithRequests.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classprotected class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final MemberTypeprotected longprotected intprotected final QueryTypeprotected ExecutableOperatorStatsprotected final booleanFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForUnaryExecOpWithCollectedInput
collectedInputSolMaps, minimumCollectionSizeFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
collectExceptions, qpInfo -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBaseForExecOpIndexNestedLoopsJoinWithRequestOps(QueryType query, MemberType fm, boolean useOuterJoinSemantics, int minimumInputBlockSize, boolean collectExceptions, QueryPlanningInfo qpInfo) -
Method Summary
Modifier and TypeMethodDescriptionprotected void_concludeExecution(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) Implementations of this function need to process the given solution mappings as last input, conclude the execution of this operator, and send the remaining result elements (if any) to the given sink.protected void_processCollectedInput(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) Implementations of this function need to process the given solution mappings as input and send the produced result elements (if any) to the given sink.protected abstract NullaryExecutableOpprotected RunnablecreateProcessor(NullaryExecutableOp reqOp, SolutionMapping smFromInput, IntermediateResultElementSink outputSink, ExecutionContext execCxt) protected ExecutableOperatorStatsImplprotected CompletableFuture<?>[]initiateProcessing(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) protected CompletableFuture<?> initiateProcessing(SolutionMapping sm, IntermediateResultElementSink sink, ExecutionContext execCxt) voidMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForUnaryExecOpWithCollectedInput
_concludeExecution, _process, _processMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
concludeExecution, getStats, process, processMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
getExceptionsCaughtDuringExecution, getQueryPlanningInfo, recordExceptionCaughtDuringExecutionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface se.liu.ida.hefquin.engine.queryplan.executable.ExecutableOperator
getExceptionsCaughtDuringExecution, getQueryPlanningInfo
-
Field Details
-
query
-
fm
-
useOuterJoinSemantics
protected final boolean useOuterJoinSemantics -
numberOfOutputMappingsProduced
protected long numberOfOutputMappingsProduced -
numberOfRequestOpsUsed
protected int numberOfRequestOpsUsed -
statsOfLastReqOp
-
-
Constructor Details
-
BaseForExecOpIndexNestedLoopsJoinWithRequestOps
protected BaseForExecOpIndexNestedLoopsJoinWithRequestOps(QueryType query, MemberType fm, boolean useOuterJoinSemantics, int minimumInputBlockSize, boolean collectExceptions, QueryPlanningInfo qpInfo)
-
-
Method Details
-
_processCollectedInput
protected void _processCollectedInput(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) throws ExecOpExecutionException Description copied from class:BaseForUnaryExecOpWithCollectedInputImplementations of this function need to process the given solution mappings as input and send the produced result elements (if any) to the given sink. If an exception occurs while processing the solution mappings, then this exception needs to be thrown.- Specified by:
_processCollectedInputin classBaseForUnaryExecOpWithCollectedInput- Throws:
ExecOpExecutionException
-
initiateProcessing
protected CompletableFuture<?>[] initiateProcessing(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) -
initiateProcessing
protected CompletableFuture<?> initiateProcessing(SolutionMapping sm, IntermediateResultElementSink sink, ExecutionContext execCxt) throws VariableByBlankNodeSubstitutionException -
createExecutableRequestOperator
protected abstract NullaryExecutableOp createExecutableRequestOperator(SolutionMapping sm) throws VariableByBlankNodeSubstitutionException -
createProcessor
protected Runnable createProcessor(NullaryExecutableOp reqOp, SolutionMapping smFromInput, IntermediateResultElementSink outputSink, ExecutionContext execCxt) -
_concludeExecution
protected void _concludeExecution(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) throws ExecOpExecutionException Description copied from class:BaseForUnaryExecOpWithCollectedInputImplementations of this function need to process the given solution mappings as last input, conclude the execution of this operator, and send the remaining result elements (if any) to the given sink. Notice that the list of solution mappings given here may contain fewer solution mappings than the minimum collection size, and it may even be empty! If an exception occurs during this process, then this exception needs to be thrown.- Specified by:
_concludeExecutionin classBaseForUnaryExecOpWithCollectedInput- Throws:
ExecOpExecutionException
-
resetStats
public void resetStats()- Specified by:
resetStatsin interfaceStatsProvider- Overrides:
resetStatsin classBaseForUnaryExecOpWithCollectedInput
-
createStats
- Overrides:
createStatsin classBaseForUnaryExecOpWithCollectedInput
-