Github user xuchuanyin commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2403#discussion_r199379374
--- Diff: processing/src/main/java/org/apache/carbondata/processing/loading/converter/impl/DirectDictionaryFieldConverterImpl.java ---
@@ -65,16 +65,22 @@ public DirectDictionaryFieldConverterImpl(DataField dataField, String nullFormat
@Override
public void convert(CarbonRow row, BadRecordLogHolder logHolder) {
String value = row.getString(index);
- if (value == null) {
+ row.update(convert(value, logHolder), index);
+ }
+
+ @Override public Object convert(Object value, BadRecordLogHolder logHolder)
+ throws RuntimeException {
+ String literalValue = (String) value;
+ if (literalValue == null) {
logHolder.setReason(
CarbonDataProcessorUtil.prepareFailureReason(column.getColName(), column.getDataType()));
- row.update(1, index);
- } else if (value.equals(nullFormat)) {
- row.update(1, index);
+ return 1;
--- End diff --
OK~
---