Github user manishgupta88 commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2901#discussion_r230818772 --- 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 -- For other dataTypes is the same handling of null required?...If required then you can move the if check for `data == null` before first if check and set the row to null if data is null and continue
---