Class DynamicPartitionPruningUtils


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

      • DynamicPartitionPruningUtils

        public DynamicPartitionPruningUtils()
    • Method Detail

      • 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 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.