Github user kunal642 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2901#discussion_r231001835
--- Diff:
hadoop/src/main/java/org/apache/carbondata/hadoop/util/CarbonVectorizedRecordReader.java
---
@@ -171,13 +171,20 @@ public Object getCurrentValue() throws IOException,
InterruptedException {
rowCount += 1;
Object[] row = new Object[carbonColumnarBatch.columnVectors.length];
for (int i = 0; i < carbonColumnarBatch.columnVectors.length; i ++) {
+ Object data = carbonColumnarBatch.columnVectors[i].getData(batchIdx
- 1);
if (carbonColumnarBatch.columnVectors[i].getType() ==
DataTypes.STRING
|| carbonColumnarBatch.columnVectors[i].getType() ==
DataTypes.VARCHAR) {
- byte[] data = (byte[])
carbonColumnarBatch.columnVectors[i].getData(batchIdx - 1);
- row[i] = ByteUtil.toString(data, 0, data.length);
+ if (data == null) {
+ row[i] = null;
+ } else {
+ row[i] = ByteUtil.toString((byte[]) data, 0, (((byte[])
data).length));
+ }
} else if (carbonColumnarBatch.columnVectors[i].getType() ==
DataTypes.BOOLEAN) {
- byte data = (byte)
carbonColumnarBatch.columnVectors[i].getData(batchIdx - 1);
- row[i] = ByteUtil.toBoolean(data);
+ if (data == null) {
+ row[i] = null;
+ } else {
+ row[i] = ByteUtil.toBoolean((byte) data);
+ }
--- End diff --
getData is already has a check for null values. Because here explicit
conversion is required therefore null check had to be added.
---