Class PhysicalOpParallelMultiLeftJoin
java.lang.Object
se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOps
se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpParallelMultiLeftJoin
- All Implemented Interfaces:
PhysicalOperator,UnaryPhysicalOp
A physical operator that implements a left-outer join for multiple optional
parts; as a unary operator, the operator has a single input, which provides
the solutions of the non-optional part.
The idea of the algorithm associated with this operator is to perform bind
joins for all the optional parts in parallel and then merge the results.
TODO: describe the algorithm in more detail.
The actual algorithm of this operator is implemented
in the
ExecOpParallelMultiwayLeftJoin class.-
Field Summary
FieldsFields inherited from class se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOps
id -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic List<LogicalOpRequest<?,?>> checkApplicability(List<PhysicalPlan> children) Checks whether aLogicalOpMultiwayLeftJoinwith the given list of physical plans can be implemented by the parallel multi-left-join (as captured by this physical operator).createExecOp(boolean collectExceptions, ExpectedVariables... inputVars) Creates and returns the executable operator to be used for this physical operator.booleangetExpectedVariables(ExpectedVariables... inputVars) Returns the variables that can be expected in the solution mappings produced by this operator if the input(s) to this operator contain solutions mappings with the given set(s) of variables.inthashCode()toString()voidvisit(PhysicalPlanVisitor visitor) Methods inherited from class se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOps
getIDMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface se.liu.ida.hefquin.engine.queryplan.physical.PhysicalOperator
getID
-
Field Details
-
optionalParts
-
-
Constructor Details
-
PhysicalOpParallelMultiLeftJoin
-
-
Method Details
-
checkApplicability
Checks whether aLogicalOpMultiwayLeftJoinwith the given list of physical plans can be implemented by the parallel multi-left-join (as captured by this physical operator). If yes, this method returns the optional parts of that multi-left-join. If not, this method returnsnull. -
getExpectedVariables
Description copied from interface:PhysicalOperatorReturns the variables that can be expected in the solution mappings produced by this operator if the input(s) to this operator contain solutions mappings with the given set(s) of variables. The number ofExpectedVariablesobjects passed to this method must be in line with the degree of this operator (e.g., for a unary operator, exactly one such object must be passed).- Specified by:
getExpectedVariablesin interfacePhysicalOperator
-
createExecOp
Description copied from interface:PhysicalOperatorCreates and returns the executable operator to be used for this physical operator. The implementation of this method has to create a newExecutableOperatorobject each time it is called. The given collectExceptions flag is passed to the executable operator and determines whether that operator collects its exceptions (seeExecutableOperator.getExceptionsCaughtDuringExecution()) or throws them immediately. The number ofExpectedVariablesobjects passed as arguments to this method must be in line with the degree of this operator (e.g., for a unary operator, exactly one such object must be passed).- Specified by:
createExecOpin interfacePhysicalOperator- Specified by:
createExecOpin interfaceUnaryPhysicalOp
-
visit
- Specified by:
visitin interfacePhysicalOperator
-
equals
-
hashCode
public int hashCode() -
toString
-