Class BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType extends Query,MemberType extends FederationMember,ReqType extends DataRetrievalRequest,RespType extends DataRetrievalResponse>
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.BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType,MemberType,ReqType,RespType>
- All Implemented Interfaces:
StatsProvider,ExecutableOperator,UnaryExecutableOp
- Direct Known Subclasses:
BaseForExecOpIndexNestedLoopsJoinWithSolMapsRequests
public abstract class BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType extends Query,MemberType extends FederationMember,ReqType extends DataRetrievalRequest,RespType extends DataRetrievalResponse>
extends BaseForExecOpIndexNestedLoopsJoin<QueryType,MemberType>
Abstract base class to implement index nested loops joins by issuing
requests directly and, then, using response processors.
An alternative option to this base class is the abstract base class
BaseForExecOpIndexNestedLoopsJoinWithRequestOps which relies
on executable request operators rather than issuing requests directly.
This option may come handy in cases in which a single request per
input solution mapping is not enough because of paging.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class -
Field Summary
Fields 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
ConstructorsConstructorDescriptionBaseForExecOpIndexNestedLoopsJoinWithRequests(QueryType query, MemberType fm, 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 ReqTypeprotected abstract BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType,MemberType, ReqType, RespType>.MyResponseProcessor protected abstract CompletableFuture<RespType>issueRequest(ReqType req, FederationAccessManager fedAccessMgr) intReturns the preferred block size of input blocks that are passed to this executable operator.Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpIndexNestedLoopsJoin
_concludeExecution, createStatsMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
concludeExecution, getStats, process, resetStatsMethods 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
-
Constructor Details
-
BaseForExecOpIndexNestedLoopsJoinWithRequests
public BaseForExecOpIndexNestedLoopsJoinWithRequests(QueryType query, MemberType fm, 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
-
createRequest
-
createResponseProcessor
protected abstract BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType,MemberType, createResponseProcessorReqType, RespType>.MyResponseProcessor (SolutionMapping sm, IntermediateResultElementSink sink) -
issueRequest
protected abstract CompletableFuture<RespType> issueRequest(ReqType req, FederationAccessManager fedAccessMgr) throws FederationAccessException - Throws:
FederationAccessException
-