HIVE-11926: Stats annotation might not extract stats for varchar/decimal columns (Chaoyu Tang, reviewed by Xuefu Zhang)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/15281351 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/15281351 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/15281351 Branch: refs/heads/beeline-cli Commit: 1528135176df0bb30351471eb05b919d706669b8 Parents: 648f2c6 Author: ctang <[email protected]> Authored: Thu Sep 24 12:20:42 2015 -0400 Committer: ctang <[email protected]> Committed: Thu Sep 24 14:43:32 2015 -0400 ---------------------------------------------------------------------- .../apache/hadoop/hive/ql/stats/StatsUtils.java | 182 ++++++++++--------- 1 file changed, 94 insertions(+), 88 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/15281351/ql/src/java/org/apache/hadoop/hive/ql/stats/StatsUtils.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/stats/StatsUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/stats/StatsUtils.java index 2c970bd..cc8c9e8 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/stats/StatsUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/stats/StatsUtils.java @@ -429,10 +429,11 @@ public class StatsUtils { String colType, String defaultPartName) { Range range = null; String partVal; - if (colType.equalsIgnoreCase(serdeConstants.TINYINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.SMALLINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.INT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.BIGINT_TYPE_NAME)) { + 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.BIGINT_TYPE_NAME)) { long min = Long.MAX_VALUE; long max = Long.MIN_VALUE; for (Partition partition : partitions) { @@ -447,8 +448,8 @@ public class StatsUtils { } } range = new Range(min, max); - } else if (colType.equalsIgnoreCase(serdeConstants.FLOAT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.DOUBLE_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.FLOAT_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.DOUBLE_TYPE_NAME)) { double min = Double.MAX_VALUE; double max = Double.MIN_VALUE; for (Partition partition : partitions) { @@ -463,7 +464,7 @@ public class StatsUtils { } } range = new Range(min, max); - } else if (colType.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { + } else if (colTypeLowerCase.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { double min = Double.MAX_VALUE; double max = Double.MIN_VALUE; for (Partition partition : partitions) { @@ -515,18 +516,18 @@ public class StatsUtils { continue; } ObjectInspector oi = ci.getObjectInspector(); - String colType = ci.getTypeName(); - if (colType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.BINARY_TYPE_NAME) - || colType.startsWith(serdeConstants.VARCHAR_TYPE_NAME) - || colType.startsWith(serdeConstants.CHAR_TYPE_NAME) - || colType.startsWith(serdeConstants.LIST_TYPE_NAME) - || colType.startsWith(serdeConstants.MAP_TYPE_NAME) - || colType.startsWith(serdeConstants.STRUCT_TYPE_NAME) - || colType.startsWith(serdeConstants.UNION_TYPE_NAME)) { - avgRowSize += getAvgColLenOfVariableLengthTypes(conf, oi, colType); + String colTypeLowerCase = ci.getTypeName().toLowerCase(); + if (colTypeLowerCase.equals(serdeConstants.STRING_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.BINARY_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.VARCHAR_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.CHAR_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.LIST_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.MAP_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.STRUCT_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.UNION_TYPE_NAME)) { + avgRowSize += getAvgColLenOfVariableLengthTypes(conf, oi, colTypeLowerCase); } else { - avgRowSize += getAvgColLenOfFixedLengthTypes(colType); + avgRowSize += getAvgColLenOfFixedLengthTypes(colTypeLowerCase); } } return avgRowSize; @@ -640,38 +641,38 @@ public class StatsUtils { */ public static ColStatistics getColStatistics(ColumnStatisticsObj cso, String tabName, String colName) { - ColStatistics cs = new ColStatistics(colName, cso.getColType()); - String colType = cso.getColType(); + String colTypeLowerCase = cso.getColType().toLowerCase(); + ColStatistics cs = new ColStatistics(colName, colTypeLowerCase); ColumnStatisticsData csd = cso.getStatsData(); - if (colType.equalsIgnoreCase(serdeConstants.TINYINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.SMALLINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.INT_TYPE_NAME)) { + if (colTypeLowerCase.equals(serdeConstants.TINYINT_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.SMALLINT_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.INT_TYPE_NAME)) { cs.setCountDistint(csd.getLongStats().getNumDVs()); cs.setNumNulls(csd.getLongStats().getNumNulls()); cs.setAvgColLen(JavaDataModel.get().primitive1()); cs.setRange(csd.getLongStats().getLowValue(), csd.getLongStats().getHighValue()); - } else if (colType.equalsIgnoreCase(serdeConstants.BIGINT_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.BIGINT_TYPE_NAME)) { cs.setCountDistint(csd.getLongStats().getNumDVs()); cs.setNumNulls(csd.getLongStats().getNumNulls()); cs.setAvgColLen(JavaDataModel.get().primitive2()); cs.setRange(csd.getLongStats().getLowValue(), csd.getLongStats().getHighValue()); - } else if (colType.equalsIgnoreCase(serdeConstants.FLOAT_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.FLOAT_TYPE_NAME)) { cs.setCountDistint(csd.getDoubleStats().getNumDVs()); cs.setNumNulls(csd.getDoubleStats().getNumNulls()); cs.setAvgColLen(JavaDataModel.get().primitive1()); cs.setRange(csd.getDoubleStats().getLowValue(), csd.getDoubleStats().getHighValue()); - } else if (colType.equalsIgnoreCase(serdeConstants.DOUBLE_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.DOUBLE_TYPE_NAME)) { cs.setCountDistint(csd.getDoubleStats().getNumDVs()); cs.setNumNulls(csd.getDoubleStats().getNumNulls()); cs.setAvgColLen(JavaDataModel.get().primitive2()); cs.setRange(csd.getDoubleStats().getLowValue(), csd.getDoubleStats().getHighValue()); - } else if (colType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME) - || colType.startsWith(serdeConstants.CHAR_TYPE_NAME) - || colType.startsWith(serdeConstants.VARCHAR_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.STRING_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.CHAR_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.VARCHAR_TYPE_NAME)) { cs.setCountDistint(csd.getStringStats().getNumDVs()); cs.setNumNulls(csd.getStringStats().getNumNulls()); cs.setAvgColLen(csd.getStringStats().getAvgColLen()); - } else if (colType.equalsIgnoreCase(serdeConstants.BOOLEAN_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.BOOLEAN_TYPE_NAME)) { if (csd.getBooleanStats().getNumFalses() > 0 && csd.getBooleanStats().getNumTrues() > 0) { cs.setCountDistint(2); } else { @@ -681,12 +682,12 @@ public class StatsUtils { cs.setNumFalses(csd.getBooleanStats().getNumFalses()); cs.setNumNulls(csd.getBooleanStats().getNumNulls()); cs.setAvgColLen(JavaDataModel.get().primitive1()); - } else if (colType.equalsIgnoreCase(serdeConstants.BINARY_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.BINARY_TYPE_NAME)) { cs.setAvgColLen(csd.getBinaryStats().getAvgColLen()); cs.setNumNulls(csd.getBinaryStats().getNumNulls()); - } else if (colType.equalsIgnoreCase(serdeConstants.TIMESTAMP_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) { cs.setAvgColLen(JavaDataModel.get().lengthOfTimestamp()); - } else if (colType.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { + } else if (colTypeLowerCase.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { cs.setAvgColLen(JavaDataModel.get().lengthOfDecimal()); cs.setCountDistint(csd.getDecimalStats().getNumDVs()); cs.setNumNulls(csd.getDecimalStats().getNumNulls()); @@ -697,7 +698,7 @@ public class StatsUtils { BigDecimal minVal = HiveDecimal. create(new BigInteger(val.getUnscaled()), val.getScale()).bigDecimalValue(); cs.setRange(minVal, maxVal); - } else if (colType.equalsIgnoreCase(serdeConstants.DATE_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.DATE_TYPE_NAME)) { cs.setAvgColLen(JavaDataModel.get().lengthOfDate()); } else { // Columns statistics for complex datatypes are not supported yet @@ -741,7 +742,9 @@ public class StatsUtils { List<ColStatistics> stats = new ArrayList<ColStatistics>(colStats.size()); for (ColumnStatisticsObj statObj : colStats) { ColStatistics cs = getColStatistics(statObj, tabName, statObj.getColName()); - stats.add(cs); + if (cs != null) { + stats.add(cs); + } } return stats; } @@ -776,8 +779,8 @@ public class StatsUtils { String colType) { long configVarLen = HiveConf.getIntVar(conf, HiveConf.ConfVars.HIVE_STATS_MAX_VARIABLE_LENGTH); - - if (colType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME)) { + String colTypeLowCase = colType.toLowerCase(); + if (colTypeLowCase.equals(serdeConstants.STRING_TYPE_NAME)) { // constant string projection Ex: select "hello" from table if (oi instanceof ConstantObjectInspector) { @@ -793,7 +796,7 @@ public class StatsUtils { // return the variable length from config return configVarLen; } - } else if (colType.startsWith(serdeConstants.VARCHAR_TYPE_NAME)) { + } else if (colTypeLowCase.startsWith(serdeConstants.VARCHAR_TYPE_NAME)) { // constant varchar projection if (oi instanceof ConstantObjectInspector) { @@ -806,7 +809,7 @@ public class StatsUtils { VarcharTypeInfo type = (VarcharTypeInfo) ((HiveVarcharObjectInspector) oi).getTypeInfo(); return type.getLength(); } - } else if (colType.startsWith(serdeConstants.CHAR_TYPE_NAME)) { + } else if (colTypeLowCase.startsWith(serdeConstants.CHAR_TYPE_NAME)) { // constant char projection if (oi instanceof ConstantObjectInspector) { @@ -819,7 +822,7 @@ public class StatsUtils { CharTypeInfo type = (CharTypeInfo) ((HiveCharObjectInspector) oi).getTypeInfo(); return type.getLength(); } - } else if (colType.equalsIgnoreCase(serdeConstants.BINARY_TYPE_NAME)) { + } else if (colTypeLowCase.equals(serdeConstants.BINARY_TYPE_NAME)) { // constant byte arrays if (oi instanceof ConstantObjectInspector) { @@ -858,17 +861,17 @@ public class StatsUtils { switch (oi.getCategory()) { case PRIMITIVE: - String colType = oi.getTypeName(); - if (colType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME) - || colType.startsWith(serdeConstants.VARCHAR_TYPE_NAME) - || colType.startsWith(serdeConstants.CHAR_TYPE_NAME)) { - int avgColLen = (int) getAvgColLenOfVariableLengthTypes(conf, oi, colType); + String colTypeLowerCase = oi.getTypeName().toLowerCase(); + if (colTypeLowerCase.equals(serdeConstants.STRING_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.VARCHAR_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.CHAR_TYPE_NAME)) { + int avgColLen = (int) getAvgColLenOfVariableLengthTypes(conf, oi, colTypeLowerCase); result += JavaDataModel.get().lengthForStringOfLength(avgColLen); - } else if (colType.equalsIgnoreCase(serdeConstants.BINARY_TYPE_NAME)) { - int avgColLen = (int) getAvgColLenOfVariableLengthTypes(conf, oi, colType); + } else if (colTypeLowerCase.equals(serdeConstants.BINARY_TYPE_NAME)) { + int avgColLen = (int) getAvgColLenOfVariableLengthTypes(conf, oi, colTypeLowerCase); result += JavaDataModel.get().lengthForByteArrayOfSize(avgColLen); } else { - result += getAvgColLenOfFixedLengthTypes(colType); + result += getAvgColLenOfFixedLengthTypes(colTypeLowerCase); } break; case LIST: @@ -952,21 +955,22 @@ public class StatsUtils { * @return raw data size */ public static long getAvgColLenOfFixedLengthTypes(String colType) { - if (colType.equalsIgnoreCase(serdeConstants.TINYINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.SMALLINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.INT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.BOOLEAN_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.FLOAT_TYPE_NAME)) { + 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.BOOLEAN_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.FLOAT_TYPE_NAME)) { return JavaDataModel.get().primitive1(); - } else if (colType.equalsIgnoreCase(serdeConstants.DOUBLE_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.BIGINT_TYPE_NAME) - || colType.equalsIgnoreCase("long")) { + } else if (colTypeLowerCase.equals(serdeConstants.DOUBLE_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.BIGINT_TYPE_NAME) + || colTypeLowerCase.equals("long")) { return JavaDataModel.get().primitive2(); - } else if (colType.equalsIgnoreCase(serdeConstants.TIMESTAMP_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) { return JavaDataModel.get().lengthOfTimestamp(); - } else if (colType.equalsIgnoreCase(serdeConstants.DATE_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.DATE_TYPE_NAME)) { return JavaDataModel.get().lengthOfDate(); - } else if (colType.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { + } else if (colTypeLowerCase.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { return JavaDataModel.get().lengthOfDecimal(); } else { return 0; @@ -982,25 +986,26 @@ public class StatsUtils { * @return raw data size */ public static long getSizeOfPrimitiveTypeArraysFromType(String colType, int length) { - if (colType.equalsIgnoreCase(serdeConstants.TINYINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.SMALLINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.INT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.FLOAT_TYPE_NAME)) { + 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)) { return JavaDataModel.get().lengthForIntArrayOfSize(length); - } else if (colType.equalsIgnoreCase(serdeConstants.DOUBLE_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.DOUBLE_TYPE_NAME)) { return JavaDataModel.get().lengthForDoubleArrayOfSize(length); - } else if (colType.equalsIgnoreCase(serdeConstants.BIGINT_TYPE_NAME) - || colType.equalsIgnoreCase("long")) { + } else if (colTypeLowerCase.equals(serdeConstants.BIGINT_TYPE_NAME) + || colTypeLowerCase.equals("long")) { return JavaDataModel.get().lengthForLongArrayOfSize(length); - } else if (colType.equalsIgnoreCase(serdeConstants.BINARY_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.BINARY_TYPE_NAME)) { return JavaDataModel.get().lengthForByteArrayOfSize(length); - } else if (colType.equalsIgnoreCase(serdeConstants.BOOLEAN_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.BOOLEAN_TYPE_NAME)) { return JavaDataModel.get().lengthForBooleanArrayOfSize(length); - } else if (colType.equalsIgnoreCase(serdeConstants.TIMESTAMP_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) { return JavaDataModel.get().lengthForTimestampArrayOfSize(length); - } else if (colType.equalsIgnoreCase(serdeConstants.DATE_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.DATE_TYPE_NAME)) { return JavaDataModel.get().lengthForDateArrayOfSize(length); - } else if (colType.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { + } else if (colTypeLowerCase.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { return JavaDataModel.get().lengthForDecimalArrayOfSize(length); } else { return 0; @@ -1267,8 +1272,9 @@ public class StatsUtils { throw new IllegalArgumentException("not supported expr type " + end.getClass()); } - if (colType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.BINARY_TYPE_NAME) + colType = colType.toLowerCase(); + if (colType.equals(serdeConstants.STRING_TYPE_NAME) + || colType.equals(serdeConstants.BINARY_TYPE_NAME) || colType.startsWith(serdeConstants.VARCHAR_TYPE_NAME) || colType.startsWith(serdeConstants.CHAR_TYPE_NAME) || colType.startsWith(serdeConstants.LIST_TYPE_NAME) @@ -1380,30 +1386,30 @@ public class StatsUtils { for (ColStatistics cs : colStats) { if (cs != null) { - String colType = cs.getColumnType(); + String colTypeLowerCase = cs.getColumnType().toLowerCase(); long nonNullCount = numRows - cs.getNumNulls(); double sizeOf = 0; - if (colType.equalsIgnoreCase(serdeConstants.TINYINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.SMALLINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.INT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.BIGINT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.BOOLEAN_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.FLOAT_TYPE_NAME) - || colType.equalsIgnoreCase(serdeConstants.DOUBLE_TYPE_NAME)) { + if (colTypeLowerCase.equals(serdeConstants.TINYINT_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.SMALLINT_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.INT_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.BIGINT_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.BOOLEAN_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.FLOAT_TYPE_NAME) + || colTypeLowerCase.equals(serdeConstants.DOUBLE_TYPE_NAME)) { sizeOf = cs.getAvgColLen(); - } else if (colType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME) - || colType.startsWith(serdeConstants.VARCHAR_TYPE_NAME) - || colType.startsWith(serdeConstants.CHAR_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.STRING_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.VARCHAR_TYPE_NAME) + || colTypeLowerCase.startsWith(serdeConstants.CHAR_TYPE_NAME)) { int acl = (int) Math.round(cs.getAvgColLen()); sizeOf = JavaDataModel.get().lengthForStringOfLength(acl); - } else if (colType.equalsIgnoreCase(serdeConstants.BINARY_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.BINARY_TYPE_NAME)) { int acl = (int) Math.round(cs.getAvgColLen()); sizeOf = JavaDataModel.get().lengthForByteArrayOfSize(acl); - } else if (colType.equalsIgnoreCase(serdeConstants.TIMESTAMP_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) { sizeOf = JavaDataModel.get().lengthOfTimestamp(); - } else if (colType.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { + } else if (colTypeLowerCase.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { sizeOf = JavaDataModel.get().lengthOfDecimal(); - } else if (colType.equalsIgnoreCase(serdeConstants.DATE_TYPE_NAME)) { + } else if (colTypeLowerCase.equals(serdeConstants.DATE_TYPE_NAME)) { sizeOf = JavaDataModel.get().lengthOfDate(); } else { sizeOf = cs.getAvgColLen();
