Github user jackylk commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2403#discussion_r199325848
--- 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 --
Suggest to create a constant for null value (1)
---