scarlin-cloudera commented on a change in pull request #970: Hive 23100
URL: https://github.com/apache/hive/pull/970#discussion_r405706166
 
 

 ##########
 File path: 
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/stats/HiveRelMdSize.java
 ##########
 @@ -183,4 +185,50 @@ public static Double averageTypeSize(RelDataType type) {
     }
   }
 
+  public static double typeSize(RelDataType type, Comparable value) {
+    if (value == null) {
+      return 1d;
+    }
+    switch (type.getSqlTypeName()) {
+      case BOOLEAN:
+      case TINYINT:
+        return 1d;
+      case SMALLINT:
+        return 2d;
+      case INTEGER:
+      case FLOAT:
+      case REAL:
+      case DATE:
+      case TIME:
+      case TIME_WITH_LOCAL_TIME_ZONE:
+      case INTERVAL_YEAR:
+      case INTERVAL_YEAR_MONTH:
+      case INTERVAL_MONTH:
+        return 4d;
+      case BIGINT:
+      case DOUBLE:
+      case TIMESTAMP:
+      case TIMESTAMP_WITH_LOCAL_TIME_ZONE:
+      case INTERVAL_DAY:
+      case INTERVAL_DAY_HOUR:
+      case INTERVAL_DAY_MINUTE:
+      case INTERVAL_DAY_SECOND:
+      case INTERVAL_HOUR:
+      case INTERVAL_HOUR_MINUTE:
+      case INTERVAL_HOUR_SECOND:
+      case INTERVAL_MINUTE:
+      case INTERVAL_MINUTE_SECOND:
+      case INTERVAL_SECOND:
+        return 8d;
+      case BINARY:
+      case VARBINARY:
+        return ((ByteString) value).length();
+      case CHAR:
+      case VARCHAR:
+        return ((NlsString) value).getValue().length() * BYTES_PER_CHARACTER;
+      default:
+        return 32;
 
 Review comment:
   If we do keep the class as returning double, need to change this one as well.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to