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);
- }
}