You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by za...@apache.org on 2022/12/07 18:40:27 UTC

[hive] branch master updated: HIVE-26810: Replace HiveFilterSetOpTransposeRule onMatch method with Calcite's built-in implementation (Alessandro Solimando reviewed by Stamatis Zampetakis)

This is an automated email from the ASF dual-hosted git repository.

zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new ebf05894edf HIVE-26810: Replace HiveFilterSetOpTransposeRule onMatch method with Calcite's built-in implementation (Alessandro Solimando reviewed by Stamatis Zampetakis)
ebf05894edf is described below

commit ebf05894edf80fae6280b656d3718685c930401d
Author: Alessandro Solimando <al...@gmail.com>
AuthorDate: Wed Dec 7 12:04:37 2022 +0100

    HIVE-26810: Replace HiveFilterSetOpTransposeRule onMatch method with Calcite's built-in implementation (Alessandro Solimando reviewed by Stamatis Zampetakis)
    
    Closes #3842
---
 .../rules/HiveFilterSetOpTransposeRule.java        | 30 ----------------------
 1 file changed, 30 deletions(-)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSetOpTransposeRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSetOpTransposeRule.java
index 8f6bb61b833..739c674fc1f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSetOpTransposeRule.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveFilterSetOpTransposeRule.java
@@ -68,34 +68,4 @@ public class HiveFilterSetOpTransposeRule extends FilterSetOpTransposeRule {
 
     return super.matches(call);
   }
-
-
-  //~ Methods ----------------------------------------------------------------
-
-  @Override
-  public void onMatch(RelOptRuleCall call) {
-    final Filter filterRel = call.rel(0);
-    final SetOp setOp = call.rel(1);
-
-    final RexNode condition = filterRel.getCondition();
-
-    // create filters on top of each setop child, modifying the filter
-    // condition to reference each setop child
-    final RexBuilder rexBuilder = filterRel.getCluster().getRexBuilder();
-    final RelBuilder relBuilder = call.builder();
-    final List<RelDataTypeField> origFields = setOp.getRowType().getFieldList();
-    final int[] adjustments = new int[origFields.size()];
-    final List<RelNode> newSetOpInputs = new ArrayList<>();
-
-    for (int index = 0; index < setOp.getInputs().size(); index++) {
-      RelNode input = setOp.getInput(index);
-      RexNode newCondition = condition.accept(new RelOptUtil.RexInputConverter(rexBuilder,
-          origFields, input.getRowType().getFieldList(), adjustments));
-      newSetOpInputs.add(relBuilder.push(input).filter(newCondition).build());
-    }
-
-    // create a new setop whose children are the filters created above
-    SetOp newSetOp = setOp.copy(setOp.getTraitSet(), newSetOpInputs);
-    call.transformTo(newSetOp);
-  }
 }