@Override public FixedSizeBinaryWriter fixedSizeBinary(String name, int byteWidth) { FieldWriter writer = fields.get(handleCase(name)); if(writer == null) { ValueVector vector; ValueVector currentVector = container.getChild(name); FixedSizeBinaryVector v = container.addOrGet(name, FieldType.nullable( new org.apache.arrow.vector.types.pojo.ArrowType.FixedSizeBinary(byteWidth) ), FixedSizeBinaryVector.class); writer = new PromotableWriter(v, container, getNullableStructWriterFactory()); vector = v; if (currentVector == null || currentVector != vector) { if(this.initialCapacity > 0) { vector.setInitialCapacity(this.initialCapacity); } vector.allocateNewSafe(); } writer.setPosition(idx()); fields.put(handleCase(name), writer); } else { if (writer instanceof PromotableWriter) { // ensure writers are initialized ((PromotableWriter)writer).getWriter(MinorType.FIXEDSIZEBINARY); } } return writer; }
@Override public FixedSizeBinaryWriter fixedSizeBinary(String name, int byteWidth) { FieldWriter writer = fields.get(handleCase(name)); if(writer == null) { ValueVector vector; ValueVector currentVector = container.getChild(name); FixedSizeBinaryVector v = container.addOrGet(name, FieldType.nullable( new org.apache.arrow.vector.types.pojo.ArrowType.FixedSizeBinary(byteWidth) ), FixedSizeBinaryVector.class); writer = new PromotableWriter(v, container, getNullableStructWriterFactory()); vector = v; if (currentVector == null || currentVector != vector) { if(this.initialCapacity > 0) { vector.setInitialCapacity(this.initialCapacity); } vector.allocateNewSafe(); } writer.setPosition(idx()); fields.put(handleCase(name), writer); } else { if (writer instanceof PromotableWriter) { // ensure writers are initialized ((PromotableWriter)writer).getWriter(MinorType.FIXEDSIZEBINARY); } } return writer; }
org.apache.arrow.flatbuf.FixedSizeBinary fixedsizebinaryType = (org.apache.arrow.flatbuf.FixedSizeBinary) field.type(new org.apache.arrow.flatbuf.FixedSizeBinary()); int byteWidth = fixedsizebinaryType.byteWidth(); return new ArrowType.FixedSizeBinary(byteWidth);
/** * Instantiate a FixedSizeBinaryVector. This doesn't allocate any memory for * the data in vector. * * @param name name of the vector * @param allocator allocator for memory management. * @param byteWidth byte width of the binary values */ public FixedSizeBinaryVector(String name, BufferAllocator allocator, int byteWidth) { this(name, FieldType.nullable(new FixedSizeBinary(byteWidth)), allocator); }