You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2016/10/25 11:17:51 UTC

hive git commit: HIVE-15030: Fixes in inference of collation for Tez cost model (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Repository: hive
Updated Branches:
  refs/heads/master e2653db37 -> f99a6e844


HIVE-15030: Fixes in inference of collation for Tez cost model (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/f99a6e84
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/f99a6e84
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/f99a6e84

Branch: refs/heads/master
Commit: f99a6e84447874a6a2453c62c34e6756492aae12
Parents: e2653db
Author: Jesus Camacho Rodriguez <jc...@apache.org>
Authored: Fri Oct 21 13:09:00 2016 +0100
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Tue Oct 25 07:16:13 2016 -0400

----------------------------------------------------------------------
 .../calcite/cost/HiveAlgorithmsUtil.java        |  1 -
 .../calcite/cost/HiveOnTezCostModel.java        | 28 +++++++++++++-------
 2 files changed, 19 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/f99a6e84/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveAlgorithmsUtil.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveAlgorithmsUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveAlgorithmsUtil.java
index 0c13ee7..4ba10e2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveAlgorithmsUtil.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveAlgorithmsUtil.java
@@ -34,7 +34,6 @@ import org.apache.hadoop.hive.ql.optimizer.calcite.HiveRelDistribution;
 import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveJoin;
 import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveJoin.MapJoinStreamingRelation;
 import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveRelNode;
-import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveTableScan;
 
 import com.google.common.collect.ImmutableList;
 

http://git-wip-us.apache.org/repos/asf/hive/blob/f99a6e84/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveOnTezCostModel.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveOnTezCostModel.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveOnTezCostModel.java
index a4233b9..af5fc5e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveOnTezCostModel.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/cost/HiveOnTezCostModel.java
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.calcite.plan.RelOptCost;
 import org.apache.calcite.rel.RelCollation;
 import org.apache.calcite.rel.RelDistribution;
+import org.apache.calcite.rel.RelDistributions;
 import org.apache.calcite.rel.RelDistribution.Type;
 import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.metadata.RelMetadataQuery;
@@ -290,9 +291,12 @@ public class HiveOnTezCostModel extends HiveCostModel {
 
     @Override
     public ImmutableList<RelCollation> getCollation(HiveJoin join) {
-      if (join.getStreamingSide() != MapJoinStreamingRelation.LEFT_RELATION
-              || join.getStreamingSide() != MapJoinStreamingRelation.RIGHT_RELATION) {
-        return null;
+      final MapJoinStreamingRelation streamingSide = join.getStreamingSide();
+      if (streamingSide != MapJoinStreamingRelation.LEFT_RELATION
+              && streamingSide != MapJoinStreamingRelation.RIGHT_RELATION) {
+        // Error; default value
+        LOG.warn("Streaming side for map join not chosen");
+        return ImmutableList.of();
       }
       return HiveAlgorithmsUtil.getJoinCollation(join.getJoinPredicateInfo(),
               join.getStreamingSide());
@@ -300,9 +304,12 @@ public class HiveOnTezCostModel extends HiveCostModel {
 
     @Override
     public RelDistribution getDistribution(HiveJoin join) {
-      if (join.getStreamingSide() != MapJoinStreamingRelation.LEFT_RELATION
-              || join.getStreamingSide() != MapJoinStreamingRelation.RIGHT_RELATION) {
-        return null;
+      final MapJoinStreamingRelation streamingSide = join.getStreamingSide();
+      if (streamingSide != MapJoinStreamingRelation.LEFT_RELATION
+              && streamingSide != MapJoinStreamingRelation.RIGHT_RELATION) {
+        // Error; default value
+        LOG.warn("Streaming side for map join not chosen");
+        return RelDistributions.SINGLETON;
       }
       return HiveAlgorithmsUtil.getJoinDistribution(join.getJoinPredicateInfo(),
               join.getStreamingSide());
@@ -456,9 +463,12 @@ public class HiveOnTezCostModel extends HiveCostModel {
 
     @Override
     public ImmutableList<RelCollation> getCollation(HiveJoin join) {
-      if (join.getStreamingSide() != MapJoinStreamingRelation.LEFT_RELATION
-              || join.getStreamingSide() != MapJoinStreamingRelation.RIGHT_RELATION) {
-        return null;
+      final MapJoinStreamingRelation streamingSide = join.getStreamingSide();
+      if (streamingSide != MapJoinStreamingRelation.LEFT_RELATION
+              && streamingSide != MapJoinStreamingRelation.RIGHT_RELATION) {
+        // Error; default value
+        LOG.warn("Streaming side for map join not chosen");
+        return ImmutableList.of();
       }
       return HiveAlgorithmsUtil.getJoinCollation(join.getJoinPredicateInfo(),
               join.getStreamingSide());