Skip to content

Commit 91b17f6

Browse files
wsuppigerWilliam Suppiger
andauthored
GH-625: Map MinorType getNewFieldWriter returns UnionMapWriter (#627)
## What's Changed Closes #625 --------- Co-authored-by: William Suppiger <[email protected]>
1 parent fad445a commit 91b17f6

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

vector/src/main/java/org/apache/arrow/vector/types/Types.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
import org.apache.arrow.vector.complex.impl.UnionLargeListViewWriter;
117117
import org.apache.arrow.vector.complex.impl.UnionLargeListWriter;
118118
import org.apache.arrow.vector.complex.impl.UnionListWriter;
119+
import org.apache.arrow.vector.complex.impl.UnionMapWriter;
119120
import org.apache.arrow.vector.complex.impl.UnionWriter;
120121
import org.apache.arrow.vector.complex.impl.VarBinaryWriterImpl;
121122
import org.apache.arrow.vector.complex.impl.VarCharWriterImpl;
@@ -721,7 +722,7 @@ public FieldVector getNewVector(
721722

722723
@Override
723724
public FieldWriter getNewFieldWriter(ValueVector vector) {
724-
return new UnionListWriter((MapVector) vector);
725+
return new UnionMapWriter((MapVector) vector);
725726
}
726727
},
727728
TIMESTAMPSECTZ(null) {

vector/src/test/java/org/apache/arrow/vector/TestMapVector.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.apache.arrow.vector.complex.reader.FieldReader;
3636
import org.apache.arrow.vector.complex.writer.BaseWriter.ListWriter;
3737
import org.apache.arrow.vector.complex.writer.BaseWriter.MapWriter;
38+
import org.apache.arrow.vector.complex.writer.FieldWriter;
3839
import org.apache.arrow.vector.types.Types.MinorType;
3940
import org.apache.arrow.vector.types.pojo.ArrowType;
4041
import org.apache.arrow.vector.types.pojo.Field;
@@ -1241,4 +1242,25 @@ public void testMakeTransferPairPreserveNullability() {
12411242
assertEquals(intField, vec.getField().getChildren().get(0));
12421243
assertEquals(intField, res.getField().getChildren().get(0));
12431244
}
1245+
1246+
@Test
1247+
public void testMapTypeReturnsSupportedMapWriter() {
1248+
try (final MapVector vector = MapVector.empty("map", allocator, false)) {
1249+
vector.allocateNew();
1250+
FieldWriter mapWriter = MinorType.MAP.getNewFieldWriter(vector);
1251+
1252+
mapWriter.startMap();
1253+
mapWriter.startEntry();
1254+
mapWriter.key().bigInt().writeBigInt(1);
1255+
mapWriter.value().integer().writeInt(11);
1256+
mapWriter.endEntry();
1257+
mapWriter.endMap();
1258+
1259+
Object result = vector.getObject(0);
1260+
ArrayList<?> resultSet = (ArrayList<?>) result;
1261+
Map<?, ?> resultStruct = (Map<?, ?>) resultSet.get(0);
1262+
assertEquals(1L, getResultKey(resultStruct));
1263+
assertEquals(11, getResultValue(resultStruct));
1264+
}
1265+
}
12441266
}

0 commit comments

Comments
 (0)