public FieldVector createVector(BufferAllocator allocator) { FieldVector vector = fieldType.createNewSingleVector(name, allocator, null); vector.initializeChildrenFromFields(children); return vector; }
protected ValueVector add(String childName, FieldType fieldType) { final ValueVector existing = getChild(childName); if (existing != null) { throw new IllegalStateException(String.format("Vector already exists: Existing[%s], Requested[%s] ", existing.getClass().getSimpleName(), fieldType)); } FieldVector vector = fieldType.createNewSingleVector(childName, allocator, callBack); putChild(childName, vector); if (callBack != null) { callBack.doWork(); } return vector; }
final T vector = clazz.cast(fieldType.createNewSingleVector(childName, allocator, callBack)); putChild(childName, vector); if (callBack != null) {
@Override @SuppressWarnings("unchecked") public <T extends ValueVector> AddOrGetResult<T> addOrGetVector(FieldType type) { boolean created = false; if (vector == ZeroVector.INSTANCE) { vector = type.createNewSingleVector(DATA_VECTOR_NAME, allocator, null); this.reader = new UnionFixedSizeListReader(this); created = true; } // returned vector must have the same field if (!Objects.equals(vector.getField().getType(), type.getType())) { final String msg = String.format("Inner vector type mismatch. Requested type: [%s], actual type: [%s]", type.getType(), vector.getField().getType()); throw new SchemaChangeRuntimeException(msg); } return new AddOrGetResult<>((T) vector, created); }
public <T extends ValueVector> AddOrGetResult<T> addOrGetVector(FieldType fieldType) { boolean created = false; if (vector instanceof ZeroVector) { vector = fieldType.createNewSingleVector(DATA_VECTOR_NAME, allocator, callBack); // returned vector must have the same field created = true; if (callBack != null && // not a schema change if changing from ZeroVector to ZeroVector (fieldType.getType().getTypeID() != ArrowTypeID.Null)) { callBack.doWork(); } } if (vector.getField().getType().getTypeID() != fieldType.getType().getTypeID()) { final String msg = String.format("Inner vector type mismatch. Requested type: [%s], actual type: [%s]", fieldType.getType().getTypeID(), vector.getField().getType().getTypeID()); throw new SchemaChangeRuntimeException(msg); } return new AddOrGetResult<>((T) vector, created); }