hive-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c..@apache.org
Subject svn commit: r1431793 - /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
Date Fri, 11 Jan 2013 01:46:48 GMT
Author: cws
Date: Fri Jan 11 01:46:48 2013
New Revision: 1431793

URL: http://svn.apache.org/viewvc?rev=1431793&view=rev
Log:
HIVE-3875. Negative value for hive.stats.ndv.error should be disallowed (Shreepadma Venugopalan
via cws)

Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java?rev=1431793&r1=1431792&r2=1431793&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
(original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
Fri Jan 11 01:46:48 2013
@@ -341,32 +341,56 @@ public class ColumnStatsSemanticAnalyzer
     return retClause;
   }
 
-  private int getNumBitVectorsForNDVEstimation(HiveConf conf) {
+  private int getNumBitVectorsForNDVEstimation(HiveConf conf) throws SemanticException {
     int numBitVectors;
     float percentageError = HiveConf.getFloatVar(conf, HiveConf.ConfVars.HIVE_STATS_NDV_ERROR);
 
-    if (percentageError <= 2.4) {
+    if (percentageError < 0.0) {
+      throw new SemanticException("hive.stats.ndv.error can't be negative");
+    } else if (percentageError <= 2.4) {
       numBitVectors = 1024;
+      LOG.info("Lowest error achievable is 2.4% but error requested is " + percentageError
+ "%");
+      LOG.info("Choosing 1024 bit vectors..");
     } else if (percentageError <= 3.4 ) {
       numBitVectors = 1024;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 1024 bit vectors..");
     } else if (percentageError <= 4.8) {
       numBitVectors = 512;
-    } else if (percentageError <= 6.8) {
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 512 bit vectors..");
+     } else if (percentageError <= 6.8) {
       numBitVectors = 256;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 256 bit vectors..");
     } else if (percentageError <= 9.7) {
       numBitVectors = 128;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 128 bit vectors..");
     } else if (percentageError <= 13.8) {
       numBitVectors = 64;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 64 bit vectors..");
     } else if (percentageError <= 19.6) {
       numBitVectors = 32;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 32 bit vectors..");
     } else if (percentageError <= 28.2) {
       numBitVectors = 16;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 16 bit vectors..");
     } else if (percentageError <= 40.9) {
       numBitVectors = 8;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 8 bit vectors..");
     } else if (percentageError <= 61.0) {
       numBitVectors = 4;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 4 bit vectors..");
     } else {
       numBitVectors = 2;
+      LOG.info("Error requested is " + percentageError + "%");
+      LOG.info("Choosing 2 bit vectors..");
     }
     return numBitVectors;
   }



Mime
View raw message