|
35 | 35 | import org.apache.arrow.vector.complex.reader.FieldReader; |
36 | 36 | import org.apache.arrow.vector.complex.writer.BaseWriter.ListWriter; |
37 | 37 | import org.apache.arrow.vector.complex.writer.BaseWriter.MapWriter; |
| 38 | +import org.apache.arrow.vector.complex.writer.FieldWriter; |
38 | 39 | import org.apache.arrow.vector.types.Types.MinorType; |
39 | 40 | import org.apache.arrow.vector.types.pojo.ArrowType; |
40 | 41 | import org.apache.arrow.vector.types.pojo.Field; |
@@ -1241,4 +1242,25 @@ public void testMakeTransferPairPreserveNullability() { |
1241 | 1242 | assertEquals(intField, vec.getField().getChildren().get(0)); |
1242 | 1243 | assertEquals(intField, res.getField().getChildren().get(0)); |
1243 | 1244 | } |
| 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 | + } |
1244 | 1266 | } |
0 commit comments