This is an automated email from the ASF dual-hosted git repository.
ajantha pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/carbondata.git
The following commit(s) were added to refs/heads/master by this push:
new d850c95 [CARBONDATA-3905] NPE due to null length while querying in
Presto
d850c95 is described below
commit d850c959962f577f6169d7c7e7032a630678e6bd
Author: akkio-97 <[email protected]>
AuthorDate: Wed Nov 4 16:34:15 2020 +0530
[CARBONDATA-3905] NPE due to null length while querying in Presto
Why is this PR needed?
Earlier the implementation of putAllByteArray() in class SliceStreamReader
was added with regards to handling of complex string type columns. This method
is also called in case of plain string type.
While querying plain string type the lengths may be equal to null. Hence
this check has been added.
What changes were proposed in this PR?
Handled the same
Does this PR introduce any user interface change?
No
Is any new testcase added?
No
This closes #4003
---
.../org/apache/carbondata/presto/readers/SliceStreamReader.java | 2 ++
.../org/apache/carbondata/presto/readers/SliceStreamReader.java | 2 ++
2 files changed, 4 insertions(+)
diff --git
a/integration/presto/src/main/prestodb/org/apache/carbondata/presto/readers/SliceStreamReader.java
b/integration/presto/src/main/prestodb/org/apache/carbondata/presto/readers/SliceStreamReader.java
index 59d68dc..497b5cd 100644
---
a/integration/presto/src/main/prestodb/org/apache/carbondata/presto/readers/SliceStreamReader.java
+++
b/integration/presto/src/main/prestodb/org/apache/carbondata/presto/readers/SliceStreamReader.java
@@ -141,8 +141,10 @@ public class SliceStreamReader extends
CarbonColumnVectorImpl implements PrestoV
@Override
public void putAllByteArray(byte[] data, int offset, int length) {
+ super.putAllByteArray(data, offset, length);
int[] lengths = getLengths();
int[] offsets = getOffsets();
+ if (lengths == null) return;
for (int i = 0; i < lengths.length; i++) {
if (offsets[i] != 0) {
putByteArray(i, offsets[i], lengths[i], data);
diff --git
a/integration/presto/src/main/prestosql/org/apache/carbondata/presto/readers/SliceStreamReader.java
b/integration/presto/src/main/prestosql/org/apache/carbondata/presto/readers/SliceStreamReader.java
index 41a7541..4eeb331 100644
---
a/integration/presto/src/main/prestosql/org/apache/carbondata/presto/readers/SliceStreamReader.java
+++
b/integration/presto/src/main/prestosql/org/apache/carbondata/presto/readers/SliceStreamReader.java
@@ -141,8 +141,10 @@ public class SliceStreamReader extends
CarbonColumnVectorImpl implements PrestoV
@Override
public void putAllByteArray(byte[] data, int offset, int length) {
+ super.putAllByteArray(data, offset, length);
int[] lengths = getLengths();
int[] offsets = getOffsets();
+ if (lengths == null) return;
for (int i = 0; i < lengths.length; i++) {
if (offsets[i] != 0) {
putByteArray(i, offsets[i], lengths[i], data);