public ArrowType getType() { return fieldType.getType(); }
public Field(String name, FieldType fieldType, List<Field> children) { this(name, fieldType, children, fieldType == null ? null : TypeLayout.getTypeLayout(fieldType.getType())); }
/** * Instantiate a FixedSizeBinaryVector. This doesn't allocate any memory for * the data in vector. * * @param name name of the vector * @param fieldType type of Field materialized by this vector * @param allocator allocator for memory management. */ public FixedSizeBinaryVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, allocator, fieldType, ((FixedSizeBinary) fieldType.getType()).getByteWidth()); reader = new FixedSizeBinaryReaderImpl(FixedSizeBinaryVector.this); byteWidth = ((FixedSizeBinary) fieldType.getType()).getByteWidth(); }
/** * Instantiate a TimeStampSecTZVector. This doesn't allocate any memory for * the data in vector. * * @param name name of the vector * @param fieldType type of Field materialized by this vector * @param allocator allocator for memory management. */ public TimeStampSecTZVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); reader = new TimeStampSecTZReaderImpl(TimeStampSecTZVector.this); }
/** * Instantiate a TimeStampNanoTZVector. This doesn't allocate any memory for * the data in vector. * * @param name name of the vector * @param fieldType type of Field materialized by this vector * @param allocator allocator for memory management. */ public TimeStampNanoTZVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); reader = new TimeStampNanoTZReaderImpl(TimeStampNanoTZVector.this); }
/** * Instantiate a TimeStampMilliTZVector. This doesn't allocate any memory for * the data in vector. * * @param name name of the vector * @param fieldType type of Field materialized by this vector * @param allocator allocator for memory management. */ public TimeStampMilliTZVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); reader = new TimeStampMilliTZReaderImpl(TimeStampMilliTZVector.this); }
/** * Instantiate a TimeStampMicroTZVector. This doesn't allocate any memory for * the data in vector. * * @param name name of the vector * @param fieldType type of Field materialized by this vector * @param allocator allocator for memory management. */ public TimeStampMicroTZVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, fieldType, allocator); ArrowType.Timestamp arrowType = (ArrowType.Timestamp) fieldType.getType(); timeZone = arrowType.getTimezone(); reader = new TimeStampMicroTZReaderImpl(TimeStampMicroTZVector.this); }
@Override public FieldConverter getNewListConverter(int fieldId, String fieldName, FieldReader reader) { if (reader.getField().getChildren().get(0).getFieldType().getType().equals(Null.INSTANCE)) { return null; } return new ListParquetConverter(fieldId, fieldName, reader); }
/** * Instantiate a DecimalVector. This doesn't allocate any memory for * the data in vector. * * @param name name of the vector * @param fieldType type of Field materialized by this vector * @param allocator allocator for memory management. */ public DecimalVector(String name, FieldType fieldType, BufferAllocator allocator) { super(name, allocator, fieldType, TYPE_WIDTH); ArrowType.Decimal arrowType = (ArrowType.Decimal) fieldType.getType(); reader = new DecimalReaderImpl(DecimalVector.this); this.precision = arrowType.getPrecision(); this.scale = arrowType.getScale(); }
@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 static FieldConverter getConverter(final RowBasedRecordWriter recordWriter, final int fieldId, final String fieldName, final MinorType type, final FieldReader reader) { if (reader.getField().getFieldType().getType().getTypeID() == ArrowTypeID.Union) { return recordWriter.getNewUnionConverter(fieldId, fieldName, reader); } return getFieldConverter(recordWriter,fieldId, fieldName, type, reader); }
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); }
public FixedSizeListVector(String name, BufferAllocator allocator, FieldType fieldType, CallBack schemaChangeCallback) { super(name, allocator); this.validityBuffer = allocator.getEmpty(); this.vector = ZeroVector.INSTANCE; this.fieldType = fieldType; this.listSize = ((ArrowType.FixedSizeList) fieldType.getType()).getListSize(); Preconditions.checkArgument(listSize > 0, "list size must be positive"); this.reader = new UnionFixedSizeListReader(this); this.valueCount = 0; this.validityAllocationSizeInBytes = getValidityBufferSizeFromCount(INITIAL_VALUE_ALLOCATION); }