Class PhysicalOpIndexNestedLoopsJoin
- All Implemented Interfaces:
QueryPlanOperator,PhysicalOperator,PhysicalOperatorForLogicalOperator,UnaryPhysicalOp,UnaryPhysicalOpForLogicalOp
Semantics: This operator implements the logical operators gpAdd
(see LogicalOpGPAdd) and gpOptAdd (see LogicalOpGPOptAdd).
That is, for a given graph pattern, a federation member, and an input
sequence of solution mappings (produced by the sub-plan under this
operator), the operator produces the solutions resulting from the join
(inner or left outer) between the input solutions and the solutions of
evaluating the given graph pattern over the data of the federation
member.
Algorithm description: The outer loop iterates over the sequence of input solution mappings. For each such solution mapping, join partners within the result of the given graph pattern over the data of the federation member are retrieved by using the federation member as a form of index. The inner loop then iterates over these join partners and merges them with the current input solution mapping from the outer loop. The retrieval of join partners is done by applying the current input solution mapping from the outer loop to the given graph pattern of the operator (i.e., substituting the join variables in the pattern by the values assigned in the current input solution mapping) and, then, performing a request with the graph pattern resulting from the substitution. Hence, this is like a bind join without batching.
The actual algorithm of this operator is implemented in the following three classes, where each of them is specific to a different type of federation member.ExecOpIndexNestedLoopsJoinTPF-
invalid reference
ExecOpIndexNestedLoopsJoinBRTPF ExecOpIndexNestedLoopsJoinSPARQL
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from class se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOpSingleInputJoin
lop -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedprotected -
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 PhysicalOpFactoryinthashCode()toString()voidvisit(PhysicalPlanVisitor visitor) Methods inherited from class se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOpSingleInputJoin
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
-
PhysicalOpIndexNestedLoopsJoin
-
PhysicalOpIndexNestedLoopsJoin
-
-
Method Details
-
getFactory
-
createExecOp
public UnaryExecutableOp 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
-