diff options
Diffstat (limited to 'exec/java-exec/src')
2 files changed, 8 insertions, 1 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java index 00716cf0b..f903b0ca4 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java @@ -324,8 +324,9 @@ public class RepeatedListVector extends AbstractContainerVector implements Repea for(int i = holder.start; i < holder.end; i++, newIndex++){ if(!vectorTransfer.copyValueSafe(i, newIndex)) return false; } - if(!this.to.offsets.getMutator().setSafe(to, newIndex)) return false; + if(!this.to.offsets.getMutator().setSafe(to + 1, newIndex)) return false; + this.to.lastSet++; return true; } diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/vector/complex/writer/TestComplexTypeReader.java b/exec/java-exec/src/test/java/org/apache/drill/exec/vector/complex/writer/TestComplexTypeReader.java index be018a73b..2e6289762 100644 --- a/exec/java-exec/src/test/java/org/apache/drill/exec/vector/complex/writer/TestComplexTypeReader.java +++ b/exec/java-exec/src/test/java/org/apache/drill/exec/vector/complex/writer/TestComplexTypeReader.java @@ -123,6 +123,12 @@ public class TestComplexTypeReader extends BaseTestQuery{ } @Test + //repeated list. The repeated list is asked for twice, hence requires copying (evaluation in ProjectRecordBatch) + public void testZ4() throws Exception{ + test("select rl, rl from cp.`jsoninput/input2.json`;"); + } + + @Test //repeated map --> Json. It will go beyond the buffer of size 256 allocated in setup. public void testA0() throws Exception{ test(" select convert_to(types, 'JSON') from cp.`jsoninput/vvtypes.json`;"); |