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 <[email protected]>
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);
- }
}