setReaderAndWriterIndex(); final ArrowBuf[] buffers; if (getBufferSize() == 0) { buffers = new ArrowBuf[0]; } else {
public SerializedField getMetadata() { int bufferSize = structVector.getBufferSize(); SerializedField.Builder b = SerializedField.newBuilder() .setNamePart(NamePart.newBuilder().setName(structVector.getField().getName())) .setMajorType(Types.optional(MinorType.STRUCT)) .setBufferLength(bufferSize) .setValueCount(structVector.valueCount); b.addChild(buildValidityMetadata()); int expectedBufferSize = BaseValueVectorHelper.getValidityBufferSizeFromCount(structVector.valueCount); for(ValueVector v : structVector.getChildren()) { SerializedField metadata = TypeHelper.getMetadata(v); expectedBufferSize += metadata.getBufferLength(); b.addChild(metadata); } Preconditions.checkState(expectedBufferSize == bufferSize, "Invalid buffer count: %s != %s", expectedBufferSize, bufferSize); return b.build(); }