Repository: incubator-carbondata
Updated Branches:
  refs/heads/master 617b69aac -> 8235f82fe


[CARBONDATA-319]
Bad Records logging for column data type is not proper in case of long, carbon 
system while creating the table metadata uses BIGINT instead of LONG , 
internally it converts the bigint to long type and processes , while processing 
the data if any long type data is having issue it will be logged into the bad 
record with data type Long which is not proper since as per the metadata the 
datatype of column is BIGINT.


Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/274b8db0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/274b8db0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/274b8db0

Branch: refs/heads/master
Commit: 274b8db060391b271248ede5bd77e3518759b57a
Parents: 617b69a
Author: sujith71955 <sujithchacko.2...@gmail.com>
Authored: Sat Oct 15 21:09:27 2016 +0530
Committer: Venkata Ramana G <ramana.gollam...@huawei.com>
Committed: Tue Oct 18 00:17:07 2016 +0530

----------------------------------------------------------------------
 .../core/carbon/metadata/datatype/DataType.java | 36 ++++++++++++--------
 .../carbondata/core/util/DataTypeUtil.java      | 27 +++++++++++++++
 .../csvbased/CarbonCSVBasedSeqGenStep.java      |  1 +
 3 files changed, 49 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/274b8db0/core/src/main/java/org/apache/carbondata/core/carbon/metadata/datatype/DataType.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/carbon/metadata/datatype/DataType.java
 
b/core/src/main/java/org/apache/carbondata/core/carbon/metadata/datatype/DataType.java
index ac7ef32..28bce74 100644
--- 
a/core/src/main/java/org/apache/carbondata/core/carbon/metadata/datatype/DataType.java
+++ 
b/core/src/main/java/org/apache/carbondata/core/carbon/metadata/datatype/DataType.java
@@ -21,28 +21,34 @@ package org.apache.carbondata.core.carbon.metadata.datatype;
 
 public enum DataType {
 
-  STRING(0),
-  DATE(1),
-  TIMESTAMP(2),
-  BOOLEAN(1),
-  SHORT(2),
-  INT(3),
-  FLOAT(4),
-  LONG(5),
-  DOUBLE(6),
-  NULL(7),
-  DECIMAL(8),
-  ARRAY(9),
-  STRUCT(10),
-  MAP(11);
+  STRING(0, "STRING"),
+  DATE(1, "DATE"),
+  TIMESTAMP(2, "TIMESTAMP"),
+  BOOLEAN(1, "BOOLEAN"),
+  SHORT(2, "SHORT"),
+  INT(3, "INT"),
+  FLOAT(4, "FLOAT"),
+  LONG(5, "BIGINT"),
+  DOUBLE(6, "DOUBLE"),
+  NULL(7, "NULL"),
+  DECIMAL(8, "DECIMAL"),
+  ARRAY(9, "ARRAY"),
+  STRUCT(10, "STRUCT"),
+  MAP(11, "MAP");
 
   private int presedenceOrder;
+  private String name ;
 
-  DataType(int value) {
+  DataType(int value ,String  name) {
     this.presedenceOrder = value;
+    this.name = name;
   }
 
   public int getPresedenceOrder() {
     return presedenceOrder;
   }
+
+  public String getName() {
+    return name;
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/274b8db0/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java 
b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
index 1af87ca..d00fc39 100644
--- a/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
+++ b/core/src/main/java/org/apache/carbondata/core/util/DataTypeUtil.java
@@ -25,6 +25,8 @@ import java.math.RoundingMode;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.carbondata.common.logging.LogService;
 import org.apache.carbondata.common.logging.LogServiceFactory;
@@ -43,6 +45,23 @@ public final class DataTypeUtil {
    */
   private static final LogService LOGGER =
       LogServiceFactory.getLogService(DataTypeUtil.class.getName());
+  private static final Map<String, String> dataTypeDisplayNames;
+
+  static {
+    dataTypeDisplayNames = new HashMap<String, String>(16);
+    dataTypeDisplayNames.put(DataType.DATE.toString(), 
DataType.DATE.getName());
+    dataTypeDisplayNames.put(DataType.LONG.toString(), 
DataType.LONG.getName());
+    dataTypeDisplayNames.put(DataType.INT.toString(), DataType.INT.getName());
+    dataTypeDisplayNames.put(DataType.FLOAT.toString(), 
DataType.FLOAT.getName());
+    dataTypeDisplayNames.put(DataType.BOOLEAN.toString(), 
DataType.BOOLEAN.getName());
+    dataTypeDisplayNames.put(DataType.NULL.toString(), 
DataType.NULL.getName());
+    dataTypeDisplayNames.put(DataType.DECIMAL.toString(), 
DataType.DECIMAL.getName());
+    dataTypeDisplayNames.put(DataType.ARRAY.toString(), 
DataType.ARRAY.getName());
+    dataTypeDisplayNames.put(DataType.STRUCT.toString(), 
DataType.STRUCT.getName());
+    dataTypeDisplayNames.put(DataType.TIMESTAMP.toString(), 
DataType.TIMESTAMP.getName());
+    dataTypeDisplayNames.put(DataType.SHORT.toString(), 
DataType.SHORT.getName());
+    dataTypeDisplayNames.put(DataType.STRING.toString(), 
DataType.STRING.getName());
+  }
 
   /**
    * This method will convert a given value to its specific type
@@ -73,6 +92,14 @@ public final class DataTypeUtil {
   }
 
   /**
+   * @param dataType
+   * @return
+   */
+  public static String getColumnDataTypeDisplayName(String dataType) {
+    return dataTypeDisplayNames.get(dataType);
+  }
+
+  /**
    * This method will check the digits before dot with the max precision 
allowed
    *
    * @param bigDecimal

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/274b8db0/processing/src/main/java/org/apache/carbondata/processing/surrogatekeysgenerator/csvbased/CarbonCSVBasedSeqGenStep.java
----------------------------------------------------------------------
diff --git 
a/processing/src/main/java/org/apache/carbondata/processing/surrogatekeysgenerator/csvbased/CarbonCSVBasedSeqGenStep.java
 
b/processing/src/main/java/org/apache/carbondata/processing/surrogatekeysgenerator/csvbased/CarbonCSVBasedSeqGenStep.java
index 94b2df8..ca2c7ce 100644
--- 
a/processing/src/main/java/org/apache/carbondata/processing/surrogatekeysgenerator/csvbased/CarbonCSVBasedSeqGenStep.java
+++ 
b/processing/src/main/java/org/apache/carbondata/processing/surrogatekeysgenerator/csvbased/CarbonCSVBasedSeqGenStep.java
@@ -1237,6 +1237,7 @@ public class CarbonCSVBasedSeqGenStep extends BaseStep {
 
   private void addEntryToBadRecords(Object[] r, int j, String columnName,
       String dataType) {
+    dataType= DataTypeUtil.getColumnDataTypeDisplayName(dataType);
     badRecordslogger.addBadRecordsToBuilder(r,
         "The value " + " \"" + r[j] + "\"" + " with column name " + columnName
             + " and column data type " + dataType + " is not a valid " + 
dataType + " type.",

Reply via email to