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