[CARBONDATA-2015] Restricted maximum length of bytes per column

Validation for number of bytes for a column is added.

This closes #1813


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

Branch: refs/heads/carbonstore
Commit: 770deb8208f75bb0d3cec3e5688de2e15d1570eb
Parents: 6094af6
Author: dhatchayani <[email protected]>
Authored: Tue Jan 16 15:48:32 2018 +0530
Committer: manishgupta88 <[email protected]>
Committed: Wed Jan 17 11:42:06 2018 +0530

----------------------------------------------------------------------
 .../converter/impl/NonDictionaryFieldConverterImpl.java  | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/770deb82/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/NonDictionaryFieldConverterImpl.java
----------------------------------------------------------------------
diff --git 
a/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/NonDictionaryFieldConverterImpl.java
 
b/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/NonDictionaryFieldConverterImpl.java
index 504d2f5..ced37dd 100644
--- 
a/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/NonDictionaryFieldConverterImpl.java
+++ 
b/processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/NonDictionaryFieldConverterImpl.java
@@ -70,13 +70,14 @@ public class NonDictionaryFieldConverterImpl implements 
FieldConverter {
       try {
         byte[] value = DataTypeUtil
             .getBytesBasedOnDataTypeForNoDictionaryColumn(dimensionValue, 
dataType, dateFormat);
-        if (dataType == DataTypes.STRING) {
-          assert value.length <= 
CarbonCommonConstants.MAX_CHARS_PER_COLUMN_DEFAULT;
+        if (dataType == DataTypes.STRING
+            && value.length > 
CarbonCommonConstants.MAX_CHARS_PER_COLUMN_DEFAULT) {
+          throw new CarbonDataLoadingException("Dataload failed, String size 
cannot exceed "
+              + CarbonCommonConstants.MAX_CHARS_PER_COLUMN_DEFAULT + " bytes");
         }
         row.update(value, index);
-      } catch (AssertionError ae) {
-        throw new CarbonDataLoadingException("Dataload failed, String size 
cannot exceed "
-            + CarbonCommonConstants.MAX_CHARS_PER_COLUMN_DEFAULT + " bytes");
+      } catch (CarbonDataLoadingException e) {
+        throw e;
       } catch (Throwable ex) {
         if (dimensionValue.length() > 0 || (dimensionValue.length() == 0 && 
isEmptyBadRecord)) {
           String message = 
logHolder.getColumnMessageMap().get(column.getColName());

Reply via email to