Class PhysicalOpHashJoin2
java.lang.Object
se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOpBinaryJoin
se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpHashJoin2
- All Implemented Interfaces:
QueryPlanOperator,BinaryPhysicalOp,BinaryPhysicalOpForLogicalOp,PhysicalOperator,PhysicalOperatorForLogicalOperator
A physical operator that implements the hash join algorithm to perform
a join of two sequences of input solution mappings (produced by the two
sub-plans under this operator). The algorithm builds a hash table with
the solution mappings of the second 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 first input sequence.
The actual algorithm of this operator is implemented in the
ExecOpHashJoin2 class.
In addition to this class, we also have PhysicalOpHashJoin1
which does essentially the same thing but builds the has table over
the first input. However, in contrast to this class, that other one
does not support outer-join semantics.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from class se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOpBinaryJoin
mayReduce, useOuterJoinSemantics -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedPhysicalOpHashJoin2(boolean useOuterJoinSemantics, boolean mayReduce) -
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 PhysicalOpHashJoin2getInstanceForInnerJoin(boolean mayReduce) static PhysicalOpHashJoin2getInstanceForOuterJoin(boolean mayReduce) inthashCode()toString()voidvisit(PhysicalPlanVisitor visitor) Methods inherited from class se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOpBinaryJoin
getLogicalOperatorMethods 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
-
PhysicalOpHashJoin2
protected PhysicalOpHashJoin2(boolean useOuterJoinSemantics, boolean mayReduce)
-
-
Method Details
-
getFactory
-
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). -
visit
-
equals
-
hashCode
-
toString
-
getInstanceForInnerJoin
-
getInstanceForOuterJoin
-