public List<FieldVector> getChildrenFromFields() { return getChildren(); } }
@Override public void setValueCount(int valueCount) { for (final ValueVector v : getChildren()) { v.setValueCount(valueCount); } NonNullableStructVector.this.valueCount = valueCount; }
@Override public void clear() { for (final ValueVector v : getChildren()) { v.clear(); } valueCount = 0; }
@Override public void reset() { for (final ValueVector v : getChildren()) { v.reset(); } valueCount = 0; }
@Override public Field getField() { List<Field> children = new ArrayList<>(); for (ValueVector child : getChildren()) { children.add(child.getField()); } return new Field(name, fieldType, children); }
@Override public void close() { final Collection<FieldVector> vectors = getChildren(); for (final FieldVector v : vectors) { v.close(); } vectors.clear(); valueCount = 0; super.close(); }
@Override public int getValueCapacity() { if (size() == 0) { return 0; } return getChildren().stream() .mapToInt(child -> child.getValueCapacity()) .min() .getAsInt(); }
@Override public Field getField() { List<org.apache.arrow.vector.types.pojo.Field> childFields = new ArrayList<>(); List<FieldVector> children = internalStruct.getChildren(); int[] typeIds = new int[children.size()]; for (ValueVector v : children) { typeIds[childFields.size()] = v.getMinorType().ordinal(); childFields.add(v.getField()); } return new Field(name, FieldType.nullable(new ArrowType.Union(Sparse, typeIds)), childFields); }
public SerializedField getMetadata() { SerializedField.Builder b = SerializedField.newBuilder() .setNamePart(NamePart.newBuilder().setName(structVector.getField().getName())) .setMajorType(Types.optional(MinorType.STRUCT)) .setBufferLength(structVector.getBufferSize()) .setValueCount(structVector.valueCount); for(ValueVector v : structVector.getChildren()) { b.addChild(TypeHelper.getMetadata(v)); } return b.build(); } }