Class DynamicPartitionPruningUtils

java.lang.Object
org.apache.flink.table.planner.utils.DynamicPartitionPruningUtils

public class DynamicPartitionPruningUtils extends Object
Planner utils for Dynamic partition Pruning.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static org.apache.flink.api.java.tuple.Tuple2<Boolean,org.apache.calcite.rel.RelNode>
    canConvertAndConvertDppFactSide(org.apache.calcite.rel.RelNode rel, org.apache.calcite.util.ImmutableIntList joinKeys, org.apache.calcite.rel.RelNode dimSide, org.apache.calcite.util.ImmutableIntList dimSideJoinKey)
    Judge whether the input RelNode can be converted to the dpp fact side.
    static boolean
    isDppDimSide(org.apache.calcite.rel.RelNode rel)
    Judge whether the input RelNode meets the conditions of dimSide.
    static boolean
    isSuitableJoin(org.apache.calcite.rel.core.Join join)
    Judge whether the join node is suitable one for dpp pattern.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DynamicPartitionPruningUtils

      public DynamicPartitionPruningUtils()
  • Method Details

    • isDppDimSide

      public static boolean isDppDimSide(org.apache.calcite.rel.RelNode rel)
      Judge whether the input RelNode meets the conditions of dimSide. If joinKeys is null means we need not consider the join keys in dim side, which already deal by dynamic partition pruning rule. If joinKeys not null means we need to judge whether joinKeys changed in dim side, if changed, this RelNode is not dim side.
    • canConvertAndConvertDppFactSide

      public static org.apache.flink.api.java.tuple.Tuple2<Boolean,org.apache.calcite.rel.RelNode> canConvertAndConvertDppFactSide(org.apache.calcite.rel.RelNode rel, org.apache.calcite.util.ImmutableIntList joinKeys, org.apache.calcite.rel.RelNode dimSide, org.apache.calcite.util.ImmutableIntList dimSideJoinKey)
      Judge whether the input RelNode can be converted to the dpp fact side. If the input RelNode can be converted, this method will return the converted fact side whose partitioned table source will be converted to BatchPhysicalDynamicFilteringTableSourceScan, If not, this method will return the origin RelNode.
    • isSuitableJoin

      public static boolean isSuitableJoin(org.apache.calcite.rel.core.Join join)
      Judge whether the join node is suitable one for dpp pattern.