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/11/13 07:10:55 UTC

svn commit: r1639252 - /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdUniqueKeys.java

Author: hashutosh
Date: Thu Nov 13 06:10:54 2014
New Revision: 1639252

URL: http://svn.apache.org/r1639252
Log:
HIVE-8284 : Equality comparison is done between two floating point variables in HiveRelMdUniqueKeys#getUniqueKeys() (JongWon Park via Ashutosh Chauhan)

Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdUniqueKeys.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdUniqueKeys.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdUniqueKeys.java?rev=1639252&r1=1639251&r2=1639252&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdUniqueKeys.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/optiq/stats/HiveRelMdUniqueKeys.java Thu Nov 13 06:10:54 2014
@@ -38,6 +38,7 @@ import org.eigenbase.rel.metadata.Metada
 import org.eigenbase.rel.metadata.ReflectiveRelMetadataProvider;
 import org.eigenbase.rel.metadata.RelMdUniqueKeys;
 import org.eigenbase.rel.metadata.RelMetadataProvider;
+import org.eigenbase.relopt.RelOptUtil;
 import org.eigenbase.relopt.hep.HepRelVertex;
 import org.eigenbase.rex.RexInputRef;
 import org.eigenbase.rex.RexNode;
@@ -100,7 +101,7 @@ public class HiveRelMdUniqueKeys {
           cStat.getRange().minValue != null) {
         double r = cStat.getRange().maxValue.doubleValue() - 
             cStat.getRange().minValue.doubleValue() + 1;
-        isKey = (numRows == r);
+        isKey = (Math.abs(numRows - r) < RelOptUtil.EPSILON);
       }
       if ( isKey ) {
         BitSet key = new BitSet();