You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2016/01/25 19:42:49 UTC
hive git commit: HIVE-12802 : CBO: Calcite Operator To Hive Operator
(Calcite Return Path): MiniTezCliDriver.vector_join_filters.q failure(Hari
Subramaniyan, reviewed by Jesus Camacho Rodriguez)
Repository: hive
Updated Branches:
refs/heads/master 63f01db25 -> 637da9dd0
HIVE-12802 : CBO: Calcite Operator To Hive Operator (Calcite Return Path): MiniTezCliDriver.vector_join_filters.q failure(Hari Subramaniyan, reviewed by Jesus Camacho Rodriguez)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/637da9dd
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/637da9dd
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/637da9dd
Branch: refs/heads/master
Commit: 637da9dd0f5420a448dcaef3d1820222177b42b1
Parents: 63f01db
Author: Hari Subramaniyan <ha...@apache.org>
Authored: Mon Jan 25 10:42:40 2016 -0800
Committer: Hari Subramaniyan <ha...@apache.org>
Committed: Mon Jan 25 10:42:40 2016 -0800
----------------------------------------------------------------------
.../ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/637da9dd/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java
index f677f68..9f7f8a4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelFieldTrimmer.java
@@ -42,6 +42,8 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveMultiJoin;
+import com.google.common.collect.Lists;
+
public class HiveRelFieldTrimmer extends RelFieldTrimmer {
protected static final Log LOG = LogFactory.getLog(HiveRelFieldTrimmer.class);
@@ -61,6 +63,7 @@ public class HiveRelFieldTrimmer extends RelFieldTrimmer {
Set<RelDataTypeField> extraFields) {
final int fieldCount = join.getRowType().getFieldCount();
final RexNode conditionExpr = join.getCondition();
+ final List<RexNode> joinFilters = join.getJoinFilters();
// Add in fields used in the condition.
final Set<RelDataTypeField> combinedInputExtraFields =
@@ -131,6 +134,12 @@ public class HiveRelFieldTrimmer extends RelFieldTrimmer {
mapping, newInputs.toArray(new RelNode[newInputs.size()]));
RexNode newConditionExpr = conditionExpr.accept(shuttle);
+ List<RexNode> newJoinFilters = Lists.newArrayList();
+
+ for (RexNode joinFilter : joinFilters) {
+ newJoinFilters.add(joinFilter.accept(shuttle));
+ }
+
final RelDataType newRowType = RelOptUtil.permute(join.getCluster().getTypeFactory(),
join.getRowType(), mapping);
final RelNode newJoin = new HiveMultiJoin(join.getCluster(),
@@ -139,7 +148,7 @@ public class HiveRelFieldTrimmer extends RelFieldTrimmer {
newRowType,
join.getJoinInputs(),
join.getJoinTypes(),
- join.getJoinFilters());
+ newJoinFilters);
return new TrimResult(newJoin, mapping);
}