private SerializedField buildOffsetAndDataMetadata() { SerializedField offsetField = SerializedField.newBuilder() .setNamePart(NamePart.newBuilder().setName("$offsets$").build()) .setValueCount((vector.valueCount == 0) ? 0 : vector.valueCount + 1) .setBufferLength((vector.valueCount == 0) ? 0 : (vector.valueCount + 1) * 4) .setMajorType(com.dremio.common.types.Types.required(com.dremio.common.types.TypeProtos.MinorType.UINT4)) .build(); SerializedField.Builder dataBuilder = SerializedField.newBuilder() .setNamePart(NamePart.newBuilder().setName("$values$").build()) .setValueCount(vector.valueCount) .setBufferLength(vector.getBufferSize() - getValidityBufferSizeFromCount(vector.valueCount)) .addChild(offsetField) .setMajorType(com.dremio.common.types.Types.required(com.dremio.common.types.TypeProtos.MinorType.VARCHAR)); return dataBuilder.build(); }