[ 
https://issues.apache.org/jira/browse/HIVE-23818?focusedWorklogId=456677&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-456677
 ]

ASF GitHub Bot logged work on HIVE-23818:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 09/Jul/20 15:02
            Start Date: 09/Jul/20 15:02
    Worklog Time Spent: 10m 
      Work Description: kgyrtkirk commented on a change in pull request #1229:
URL: https://github.com/apache/hive/pull/1229#discussion_r452284974



##########
File path: ql/src/java/org/apache/hadoop/hive/ql/stats/StatsUtils.java
##########
@@ -1252,78 +1254,88 @@ public static long getSizeOfComplexTypes(HiveConf conf, 
ObjectInspector oi) {
   }
 
   /**
-   * Get size of fixed length primitives
-   * @param colType
-   *          - column type
+   * Get size of fixed length primitives.
+   *
+   * @param colType column type
    * @return raw data size
+   * @throws NullPointerException if colType is {@code null}
    */
-  public static long getAvgColLenOfFixedLengthTypes(String colType) {
-    String colTypeLowerCase = colType.toLowerCase();
-    if (colTypeLowerCase.equals(serdeConstants.TINYINT_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.SMALLINT_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.INT_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.VOID_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.BOOLEAN_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.FLOAT_TYPE_NAME)) {
+  public static long getAvgColLenOfFixedLengthTypes(final String colType) {
+    String colTypeLowerCase = Objects.requireNonNull(colType).toLowerCase();
+    switch (colTypeLowerCase) {
+    case serdeConstants.TINYINT_TYPE_NAME:
+    case serdeConstants.SMALLINT_TYPE_NAME:
+    case serdeConstants.INT_TYPE_NAME:
+    case serdeConstants.VOID_TYPE_NAME:
+    case serdeConstants.BOOLEAN_TYPE_NAME:
+    case serdeConstants.FLOAT_TYPE_NAME:
       return JavaDataModel.get().primitive1();
-    } else if (colTypeLowerCase.equals(serdeConstants.DOUBLE_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.BIGINT_TYPE_NAME)
-        || 
colTypeLowerCase.equals(serdeConstants.INTERVAL_YEAR_MONTH_TYPE_NAME)
-        || colTypeLowerCase.equals("long")) {
+    case serdeConstants.DOUBLE_TYPE_NAME:
+    case serdeConstants.BIGINT_TYPE_NAME:
+    case serdeConstants.INTERVAL_YEAR_MONTH_TYPE_NAME:
+    case "long":
       return JavaDataModel.get().primitive2();
-    } else if (colTypeLowerCase.equals(serdeConstants.TIMESTAMP_TYPE_NAME) ||
-        colTypeLowerCase.equals(serdeConstants.TIMESTAMPLOCALTZ_TYPE_NAME)) {
+    case serdeConstants.TIMESTAMP_TYPE_NAME:
+    case serdeConstants.TIMESTAMPLOCALTZ_TYPE_NAME:
       return JavaDataModel.get().lengthOfTimestamp();
-    } else if (colTypeLowerCase.equals(serdeConstants.DATE_TYPE_NAME)) {
+    case serdeConstants.DATE_TYPE_NAME:
       return JavaDataModel.get().lengthOfDate();
-    } else if (colTypeLowerCase.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) {
+    case serdeConstants.DECIMAL_TYPE_NAME:
       return JavaDataModel.get().lengthOfDecimal();
-    } else if 
(colTypeLowerCase.equals(serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME)) {
+    case serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME:
       return JavaDataModel.JAVA32_META;
-    } else {
-      //TODO: support complex types
+    default:
+      // TODO: support complex types
       // for complex type we simply return 0
       return 0;
     }
   }
 
   /**
-   * Get the size of arrays of primitive types
+   * Get the size of arrays of primitive types.
+   *
+   * @param colType The column type
+   * @param length The length of the column type
+   * @param maxLength The maximum length of the field
    * @return raw data size
+   * @throws NullPointerException if colType is {@code null}
    */
-  public static long getSizeOfPrimitiveTypeArraysFromType(String colType, int 
length, HiveConf conf) {
-    String colTypeLowerCase = colType.toLowerCase();
-    if (colTypeLowerCase.equals(serdeConstants.TINYINT_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.SMALLINT_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.INT_TYPE_NAME)
-        || colTypeLowerCase.equals(serdeConstants.FLOAT_TYPE_NAME)) {
+  public static long getSizeOfPrimitiveTypeArraysFromType(final String 
colType, final int length, final int maxLength) {
+    String colTypeLowerCase = Objects.requireNonNull(colType).toLowerCase();
+    if (colTypeLowerCase.startsWith(serdeConstants.VARCHAR_TYPE_NAME)
+        || colTypeLowerCase.startsWith(serdeConstants.CHAR_TYPE_NAME)) {
+      int charTypeLen = JavaDataModel.get().lengthForStringOfLength(maxLength);
+      return JavaDataModel.get().lengthForPrimitiveArrayOfSize(charTypeLen, 
length);
+    }
+    switch (colTypeLowerCase) {
+    case serdeConstants.TINYINT_TYPE_NAME:
+    case serdeConstants.SMALLINT_TYPE_NAME:
+    case serdeConstants.INT_TYPE_NAME:
+    case serdeConstants.FLOAT_TYPE_NAME:
       return JavaDataModel.get().lengthForIntArrayOfSize(length);
-    } else if (colTypeLowerCase.equals(serdeConstants.DOUBLE_TYPE_NAME)) {
+    case serdeConstants.DOUBLE_TYPE_NAME:
       return JavaDataModel.get().lengthForDoubleArrayOfSize(length);
-    } else if (colTypeLowerCase.equals(serdeConstants.BIGINT_TYPE_NAME)
-        || colTypeLowerCase.equals("long")) {
+    case serdeConstants.BIGINT_TYPE_NAME:
+    case "long":

Review comment:
       yes; it's unrelated - opened HIVE-23828




----------------------------------------------------------------
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:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 456677)
    Time Spent: 1h  (was: 50m)

> Use String Switch-Case Statement in StatUtils
> ---------------------------------------------
>
>                 Key: HIVE-23818
>                 URL: https://issues.apache.org/jira/browse/HIVE-23818
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Minor
>              Labels: pull-request-available
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> switch-case statements with Java is now available.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to