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.BaseForExecOpIndexNestedLoopsJoin<QueryType,MemberType>
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpIndexNestedLoopsJoinWithRequestOps<QueryType,MemberType>
- All Implemented Interfaces:
StatsProvider,ExecutableOperator,UnaryExecutableOp
- Direct Known Subclasses:
BaseForExecOpIndexNestedLoopsJoinWithTPFRequests
public abstract class BaseForExecOpIndexNestedLoopsJoinWithRequestOps<QueryType extends Query,MemberType extends FederationMember>
extends BaseForExecOpIndexNestedLoopsJoin<QueryType,MemberType>
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 longprotected intprotected ExecutableOperatorStatsprotected final booleanFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpIndexNestedLoopsJoin
fm, queryFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
timeAtCurrentProcStartFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
collectExceptions -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBaseForExecOpIndexNestedLoopsJoinWithRequestOps(QueryType query, MemberType fm, boolean useOuterJoinSemantics, boolean collectExceptions) -
Method Summary
Modifier and TypeMethodDescriptionprotected void_process(IntermediateResultBlock input, IntermediateResultElementSink sink, ExecutionContext execCxt) Implementations of this function need to process the given input block 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(SolutionMapping sm, IntermediateResultElementSink sink, ExecutionContext execCxt) protected CompletableFuture<?>[]initiateProcessing(IntermediateResultBlock input, IntermediateResultElementSink sink, ExecutionContext execCxt) intReturns the preferred block size of input blocks that are passed to this executable operator.voidMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpIndexNestedLoopsJoin
_concludeExecutionMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
concludeExecution, getStats, processMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
getExceptionsCaughtDuringExecution, 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
-
Field Details
-
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, boolean collectExceptions)
-
-
Method Details
-
preferredInputBlockSize
public int preferredInputBlockSize()Description copied from interface:UnaryExecutableOpReturns the preferred block size of input blocks that are passed to this executable operator. A query planner may use this number as an optimization hint but it does not have to use it. -
_process
protected void _process(IntermediateResultBlock input, IntermediateResultElementSink sink, ExecutionContext execCxt) throws ExecOpExecutionException Description copied from class:UnaryExecutableOpBaseImplementations of this function need to process the given input block and send the produced result elements (if any) to the given sink. If an exception occurs while processing the input block, this exception needs to either be collected or be thrown, depending on whetherBaseForExecOps.collectExceptionsis set totrue.- Specified by:
_processin classUnaryExecutableOpBase- Throws:
ExecOpExecutionException
-
initiateProcessing
protected CompletableFuture<?>[] initiateProcessing(IntermediateResultBlock input, IntermediateResultElementSink sink, ExecutionContext execCxt) throws ExecOpExecutionException - Throws:
ExecOpExecutionException
-
initiateProcessing
protected CompletableFuture<?> initiateProcessing(SolutionMapping sm, IntermediateResultElementSink sink, ExecutionContext execCxt) throws ExecOpExecutionException - Throws:
ExecOpExecutionException
-
createExecutableRequestOperator
-
createProcessor
protected Runnable createProcessor(NullaryExecutableOp reqOp, SolutionMapping smFromInput, IntermediateResultElementSink outputSink, ExecutionContext execCxt) -
resetStats
public void resetStats()- Specified by:
resetStatsin interfaceStatsProvider- Overrides:
resetStatsin classUnaryExecutableOpBase
-
createStats
- Overrides:
createStatsin classBaseForExecOpIndexNestedLoopsJoin<QueryType extends Query,MemberType extends FederationMember>
-