DRILL-1705: Fix bug when loading nested repeated vectors
Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/fd54e71e Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/fd54e71e Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/fd54e71e Branch: refs/heads/master Commit: fd54e71e80f083a1b74ee6e702485daa6bc50d13 Parents: b37dc08 Author: Steven Phillips <sphill...@maprtech.com> Authored: Thu Nov 13 02:37:18 2014 -0800 Committer: Jacques Nadeau <jacq...@apache.org> Committed: Thu Nov 13 09:17:40 2014 -0800 ---------------------------------------------------------------------- .../main/java/org/apache/drill/exec/vector/complex/MapVector.java | 2 +- .../org/apache/drill/exec/vector/complex/RepeatedMapVector.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/fd54e71e/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java index 8fb56e6..d8bd525 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/MapVector.java @@ -336,7 +336,7 @@ public class MapVector extends AbstractContainerVector { v = TypeHelper.getNewVector(fieldDef, allocator); put(fieldDef.getLastName(), v); } - if (fmd.getValueCount() == 0) { + if (fmd.getValueCount() == 0 && (!fmd.hasGroupCount() || fmd.getGroupCount() == 0)) { v.clear(); } else { v.load(fmd, buf.slice(bufOffset, fmd.getBufferLength())); http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/fd54e71e/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java index 1b01c55..01ca841 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedMapVector.java @@ -462,7 +462,7 @@ public class RepeatedMapVector extends AbstractContainerVector implements Repeat v = TypeHelper.getNewVector(fieldDef, allocator); put(fieldDef.getLastName(), v); } - if (fmd.getValueCount() == 0) { + if (fmd.getValueCount() == 0 && (!fmd.hasGroupCount() || fmd.getGroupCount() == 0)) { v.clear(); } else { v.load(fmd, buf.slice(bufOffset, fmd.getBufferLength()));