Class PhysicalOpHashRJoin
java.lang.Object
se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpHashRJoin
- All Implemented Interfaces:
QueryPlanOperator,BinaryPhysicalOp,BinaryPhysicalOpForLogicalOp,PhysicalOperator,PhysicalOperatorForLogicalOperator
A physical operator that implements the hash join algorithm to perform
a right outer join of two sequences of input solution mappings (produced
by the two sub-plans under this operator). The hash join algorithm builds
a hash table with the solution mappings of the first input sequence (using
the values that they have for the join variables to decide where to place
them in the hash table) and, thereafter, probes the hash table to find join
partners for each of the solution mappings of the second input sequence.
As this operator performs a right outer join, the solution mappings of the
second input sequence that do not have a join partner are not discarded (as
would be the case for an inner join) but, instead, are passed to the output
as is.
The actual algorithm of this operator is implemented in the
ExecOpHashRJoin class.-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateExecOp(boolean collectExceptions, QueryPlanningInfo qpInfo, ExpectedVariables... inputVars) Creates and returns the executable operator to be used for this physical operator.booleanstatic PhysicalOpFactorystatic PhysicalOpHashRJoinReturns the logical operator implemented by this physical operator.inthashCode()toString()voidvisit(PhysicalPlanVisitor visitor) Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface se.liu.ida.hefquin.engine.queryplan.physical.PhysicalOperatorForLogicalOperator
getExpectedVariables
-
Field Details
-
factory
-
-
Constructor Details
-
PhysicalOpHashRJoin
protected PhysicalOpHashRJoin()
-
-
Method Details
-
getFactory
-
getLogicalOperator
Description copied from interface:PhysicalOperatorForLogicalOperatorReturns the logical operator implemented by this physical operator.- Specified by:
getLogicalOperatorin interfaceBinaryPhysicalOpForLogicalOp- Specified by:
getLogicalOperatorin interfacePhysicalOperatorForLogicalOperator
-
createExecOp
public BinaryExecutableOp createExecOp(boolean collectExceptions, QueryPlanningInfo qpInfo, ExpectedVariables... inputVars) 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 givenQueryPlanningInfoobject is passed to the created executable operator (to be available via theExecutableOperator.getQueryPlanningInfo()method) and should be taken from the physical plan whose root operator is this physical operator. 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 interfaceBinaryPhysicalOp- Specified by:
createExecOpin interfacePhysicalOperator
-
visit
- Specified by:
visitin interfacePhysicalOperator
-
equals
-
hashCode
-
toString
-
getInstance
-