From 741ff717ad4decc8d3a02ae2bb1d18dcef58abab Mon Sep 17 00:00:00 2001 From: Julien Le Dem Date: Thu, 8 Dec 2016 21:56:09 -0800 Subject: [PATCH] ARROW-400: set struct length on json load --- .../main/java/org/apache/arrow/vector/complex/MapVector.java | 2 +- .../org/apache/arrow/vector/file/json/JsonFileReader.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/MapVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/MapVector.java index c2f216b197e..31a1bb74b8e 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/complex/MapVector.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/MapVector.java @@ -50,7 +50,7 @@ public class MapVector extends AbstractMapVector { private final SingleMapReaderImpl reader = new SingleMapReaderImpl(this); private final Accessor accessor = new Accessor(); private final Mutator mutator = new Mutator(); - int valueCount; + public int valueCount; public MapVector(String name, BufferAllocator allocator, CallBack callBack) { super(name, allocator, callBack); diff --git a/java/vector/src/main/java/org/apache/arrow/vector/file/json/JsonFileReader.java b/java/vector/src/main/java/org/apache/arrow/vector/file/json/JsonFileReader.java index 26dd3f6dfe5..152867c1a11 100644 --- a/java/vector/src/main/java/org/apache/arrow/vector/file/json/JsonFileReader.java +++ b/java/vector/src/main/java/org/apache/arrow/vector/file/json/JsonFileReader.java @@ -47,6 +47,7 @@ import org.apache.arrow.vector.ValueVector.Mutator; import org.apache.arrow.vector.VarCharVector; import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.complex.NullableMapVector; import org.apache.arrow.vector.schema.ArrowVectorType; import org.apache.arrow.vector.types.pojo.Field; import org.apache.arrow.vector.types.pojo.Schema; @@ -153,6 +154,9 @@ private void readVector(Field field, FieldVector vector) throws JsonParseExcepti } readToken(END_ARRAY); } + if (vector instanceof NullableMapVector) { + ((NullableMapVector)vector).valueCount = count; + } } readToken(END_OBJECT); }