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 2014/10/01 07:27:39 UTC
svn commit: r1628601 -
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdRowCount.java
Author: hashutosh
Date: Wed Oct 1 05:27:38 2014
New Revision: 1628601
URL: http://svn.apache.org/r1628601
Log:
HIVE-8263 : CBO : TPC-DS Q64 is item is joined last with store_sales while it should be first as it is the most selective (Harish Butani via Ashutosh Chauhan)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdRowCount.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdRowCount.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdRowCount.java?rev=1628601&r1=1628600&r2=1628601&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdRowCount.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdRowCount.java Wed Oct 1 05:27:38 2014
@@ -222,10 +222,8 @@ public class HiveRelMdRowCount extends R
return null;
}
- double leftRowCount = RelMetadataQuery.getRowCount(left)
- * RelMetadataQuery.getSelectivity(left, leftPred);
- double rightRowCount = RelMetadataQuery.getRowCount(right)
- * RelMetadataQuery.getSelectivity(right, rightPred);
+ double leftRowCount = RelMetadataQuery.getRowCount(left);
+ double rightRowCount = RelMetadataQuery.getRowCount(right);
if (leftIsKey && rightIsKey) {
if (rightRowCount < leftRowCount) {
@@ -275,7 +273,7 @@ public class HiveRelMdRowCount extends R
PKSideInfo pkInfo = new PKSideInfo(leftRowCount,
leftNDV,
joinRel.getJoinType().generatesNullsOnRight() ? 1.0 :
- RelMetadataQuery.getSelectivity(left, leftPred));
+ isPKSideSimpleTree ? RelMetadataQuery.getSelectivity(left, leftPred) : 1.0);
return new PKFKRelationInfo(1, fkInfo, pkInfo, ndvScalingFactor, isPKSideSimpleTree);
}
@@ -286,7 +284,7 @@ public class HiveRelMdRowCount extends R
PKSideInfo pkInfo = new PKSideInfo(rightRowCount,
rightNDV,
joinRel.getJoinType().generatesNullsOnLeft() ? 1.0 :
- RelMetadataQuery.getSelectivity(right, rightPred));
+ isPKSideSimpleTree ? RelMetadataQuery.getSelectivity(right, rightPred) : 1.0);
return new PKFKRelationInfo(1, fkInfo, pkInfo, ndvScalingFactor, isPKSideSimpleTree);
}