Class DpHyp

java.lang.Object
org.apache.calcite.rel.rules.DpHyp

public class DpHyp extends Object
The core process of dphyp enumeration algorithm.
  • Field Details

  • Constructor Details

  • Method Details

    • startEnumerateJoin

      public void startEnumerateJoin()
      The entry function of the algorithm. We use a bitmap to represent a leaf node, which indicates the position of the corresponding leaf node in HyperGraph.

      After the enumeration is completed, the best join order will be stored in the dpTable.

    • getBestPlan

      public @Nullable RelNode getBestPlan()
    • verifyDpResultRowType

      protected boolean verifyDpResultRowType(RelNode plan, List<HyperGraph.NodeState> resultOrder)
      Verify that the row type of plans generated by dphyp is equivalent to the origin plan.
      Parameters:
      plan - plan generated by dphyp
      resultOrder - node status ordered list
      Returns:
      true if the plan row type equivalent to the hyperGraph row type