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 <alessandro.solima...@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); - } }