首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hive优化器原理与源码解析系列--优化规则HiveIntersectMergeRule(十九)

    HiveIntersect是对Calcite框架中一操作RelNode关系表达式Intersect操作继承实现,Hive 2.3开始SQL中支持Intersect语法和操作。...判断由RelOptCall调用的优化规则Rule是否与输入参数RelNode关系表达式匹配,即此优化规则Rule能否应用到一个RelNode关系表达式树上。...public boolean matches(RelOptRuleCall call) { return true; } 2)onMatch方法逻辑详解 接收有关一条规则匹配的通知...RelNode列表中,针对操作树形状不同,又分两种情况,如下: 对应上述情况一,即根RelNode右侧分支call.rel(2)为HiveIntersect对象,把topHiveIntersect.getInput...inputs = new ArrayList(); if (call.rel(2) instanceof HiveIntersect) { inputs.add(topHiveIntersect.getInput

    52410

    Hive优化器原理与源码解析系列--优化规则HiveJoinCommuteRule(十三)

    判断由RelOptCall调用的优化规则Rule是否与输入参数RelNode关系表达式匹配,即此优化规则Rule能否应用到一个RelNode关系表达式树上。...同时此方法被调用,call.rels保存了与规则Rule的操作数Operands匹配上的关系表达式RelNode集合;call.rels[0]是根表达式。...接下来开始onMatcch方法实现逻辑讲解。 首先,用call.rel(0)获取顶层Project投影操作,其次,call.rel(1)获取子输入Join操作。...开始判断Project投影字段的置换topPermutation不为null,则说明它仅仅是输入字段的置换;值为null,则不做任何优化。同样,该字段索引的置换如果为恒等置换,也不做任何优化。...bottomProject.getInput(0)移除底部Project投影操作,产生新Join注册到优化器。 // 5.

    61620
    领券