Class PhysicalOpParallelMultiLeftJoin

java.lang.Object
se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpParallelMultiLeftJoin
All Implemented Interfaces:
QueryPlanOperator, PhysicalOperator, UnaryPhysicalOp

public class PhysicalOpParallelMultiLeftJoin extends Object implements 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 Details

  • Constructor Details

    • PhysicalOpParallelMultiLeftJoin

      public PhysicalOpParallelMultiLeftJoin(List<LogicalOpRequest<?,?>> optionalParts)
  • Method Details

    • checkApplicability

      public static List<LogicalOpRequest<?,?>> checkApplicability(PhysicalPlan[] children)
      Checks whether a
      invalid reference
      LogicalOpMultiwayLeftJoin
      with 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 returns null.
    • getExpectedVariables

      public ExpectedVariables getExpectedVariables(ExpectedVariables... inputVars)
      Description copied from interface: QueryPlanOperator
      Returns the variables that can be expected in the solution mappings produced by this operator in the case that the input(s) to this operator contain solutions mappings with the given set(s) of variables. The number of ExpectedVariables objects 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:
      getExpectedVariables in interface QueryPlanOperator
    • createExecOp

      public UnaryExecutableOp createExecOp(boolean collectExceptions, QueryPlanningInfo qpInfo, ExpectedVariables... inputVars)
      Description copied from interface: PhysicalOperator
      Creates and returns the executable operator to be used for this physical operator. The implementation of this method has to create a new ExecutableOperator object each time it is called. The given QueryPlanningInfo object is passed to the created executable operator (to be available via the ExecutableOperator.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 (see ExecutableOperator.getExceptionsCaughtDuringExecution()) or throws them immediately. The number of ExpectedVariables objects 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:
      createExecOp in interface PhysicalOperator
      Specified by:
      createExecOp in interface UnaryPhysicalOp
    • visit

      public void visit(PhysicalPlanVisitor visitor)
      Specified by:
      visit in interface PhysicalOperator
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object