java.lang.Object
org.apache.arrow.vector.BaseValueVector
org.apache.arrow.vector.BaseFixedWidthVector
org.apache.arrow.vector.UInt4Vector
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Iterable<ValueVector>
,BaseIntVector
,ElementAddressableVector
,FieldVector
,FixedWidthVector
,ValueIterableVector<Integer>
,ValueVector
,VectorDefinitionSetter
public final class UInt4Vector
extends BaseFixedWidthVector
implements BaseIntVector, ValueIterableVector<Integer>
UInt4Vector implements a fixed width (4 bytes) vector of integer values which could be null. A
validity buffer (bit vector) is maintained to track which elements in the vector are null.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The maximum 32-bit unsigned integer.static final long
The mask to use when promoting the unsigned int value to a long int.static final byte
Fields inherited from class org.apache.arrow.vector.BaseFixedWidthVector
actualValueCapacity, field, lastValueCapacity, validityBuffer, valueBuffer, valueCount
Fields inherited from class org.apache.arrow.vector.BaseValueVector
allocator, fieldReader, INITIAL_VALUE_ALLOCATION, MAX_ALLOCATION_SIZE, MAX_ALLOCATION_SIZE_PROPERTY
-
Constructor Summary
ConstructorDescriptionUInt4Vector
(String name, BufferAllocator allocator) UInt4Vector
(String name, FieldType fieldType, BufferAllocator allocator) UInt4Vector
(Field field, BufferAllocator allocator) Constructor for UInt4Vector. -
Method Summary
Modifier and TypeMethodDescriptionint
get
(int index) Get the element at the given index from the vector.void
get
(int index, NullableUInt4Holder holder) Get the element at the given index from the vector and sets the state in holder.static long
getNoOverflow
(ArrowBuf buffer, int index) Given a data buffer, get the value stored at a particular position in the vector.getObject
(int index) Same asget(int)
.getObjectNoOverflow
(int index) Same asget(int)
.protected FieldReader
Each vector has a different reader that implements the FieldReader interface.getTransferPair
(String ref, BufferAllocator allocator) Construct a transfer pair of this vector and another vector of same type.getTransferPair
(Field field, BufferAllocator allocator) Construct a TransferPair comprising this and a target vector of the same type.long
getValueAsLong
(int index) Gets the value at index.Makes a new transfer pair used to transfer underlying buffers.void
set
(int index, int value) Set the element at the given index to the given value.void
set
(int index, int isSet, int value) Sets the value at index to value isSet > 0, otherwise sets the index position to invalid/null.void
set
(int index, NullableUInt4Holder holder) Set the element at the given index to the value set in data holder.void
set
(int index, UInt4Holder holder) Set the element at the given index to the value set in data holder.void
setSafe
(int index, int value) Same asset(int, int)
except that it handles the case when index is greater than or equal to existing value capacityBaseFixedWidthVector.getValueCapacity()
.void
setSafe
(int index, int isSet, int value) Same asset(int, int, int)
but will reallocate if the buffer if index is larger than the current capacity.void
setSafe
(int index, NullableUInt4Holder holder) Same asset(int, NullableUInt4Holder)
except that it handles the case when index is greater than or equal to existing value capacityBaseFixedWidthVector.getValueCapacity()
.void
setSafe
(int index, UInt4Holder holder) Same asset(int, UInt4Holder)
except that it handles the case when index is greater than or equal to existing value capacityBaseFixedWidthVector.getValueCapacity()
.void
setUnsafeWithPossibleTruncate
(int index, long value) Sets the value at index, note this value may need to be truncated.void
setWithPossibleTruncate
(int index, long value) Sets the value at index, note this value may need to be truncated.toString()
Representation of vector suitable for debugging.Methods inherited from class org.apache.arrow.vector.BaseFixedWidthVector
accept, allocateNew, allocateNew, allocateNewSafe, clear, close, copyFrom, copyFromSafe, decrementAllocationMonitor, getBuffers, getBufferSize, getBufferSizeFor, getChildrenFromFields, getDataBuffer, getDataBufferAddress, getDataPointer, getDataPointer, getField, getFieldBuffers, getFieldInnerVectors, getName, getNullCount, getOffsetBuffer, getOffsetBufferAddress, getTransferPair, getTransferPair, getTransferPair, getTypeWidth, getValidityBuffer, getValidityBufferAddress, getValidityBufferValueCapacity, getValueBufferValueCapacity, getValueCapacity, getValueCount, handleSafe, hashCode, hashCode, incrementAllocationMonitor, initializeChildrenFromFields, isNull, isSafe, isSet, loadFieldBuffers, reAlloc, refreshValueCapacity, reset, set, set, setIndexDefined, setInitialCapacity, setNull, setSafe, setSafe, setValueCount, splitAndTransferTo, transferTo, validateScalars, zeroVector
Methods inherited from class org.apache.arrow.vector.BaseValueVector
checkBufRefs, getAllocator, getReader, getValidityBufferSizeFromCount, iterator, releaseBuffer, transferBuffer
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.arrow.vector.FieldVector
exportBuffer, exportCDataBuffers, getChildrenFromFields, getDataBufferAddress, getExportedCDataBufferCount, getFieldBuffers, getFieldInnerVectors, getOffsetBufferAddress, getValidityBufferAddress, initializeChildrenFromFields, loadFieldBuffers, setNull
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
Methods inherited from interface org.apache.arrow.vector.ValueIterableVector
getValueIterable, getValueIterator
Methods inherited from interface org.apache.arrow.vector.ValueVector
accept, allocateNew, allocateNewSafe, clear, close, copyFrom, copyFromSafe, getAllocator, getBuffers, getBufferSize, getBufferSizeFor, getDataBuffer, getField, getName, getNullCount, getOffsetBuffer, getReader, getTransferPair, getTransferPair, getTransferPair, getValidityBuffer, getValueCapacity, getValueCount, hashCode, hashCode, isNull, reAlloc, reset, setInitialCapacity, setValueCount, validate, validateFull
-
Field Details
-
PROMOTION_MASK
public static final long PROMOTION_MASKThe mask to use when promoting the unsigned int value to a long int.- See Also:
-
MAX_UINT4
public static final int MAX_UINT4The maximum 32-bit unsigned integer.- See Also:
-
TYPE_WIDTH
public static final byte TYPE_WIDTH- See Also:
-
-
Constructor Details
-
UInt4Vector
-
UInt4Vector
-
UInt4Vector
Constructor for UInt4Vector.- Parameters:
field
- Field typeallocator
- Allocator type
-
-
Method Details
-
getReaderImpl
Description copied from class:BaseValueVector
Each vector has a different reader that implements the FieldReader interface. Overridden methods must make sure to return the correct concrete reader implementation.- Specified by:
getReaderImpl
in classBaseValueVector
- Returns:
- Returns a lambda that initializes a reader when called.
-
getMinorType
- Specified by:
getMinorType
in interfaceValueVector
-
getNoOverflow
Given a data buffer, get the value stored at a particular position in the vector.To avoid overflow, the returned type is one step up from the signed type.
This method is mainly meant for integration tests.
- Parameters:
buffer
- data bufferindex
- position of the element.- Returns:
- value stored at the index.
-
get
Get the element at the given index from the vector.- Parameters:
index
- position of element- Returns:
- element at given index
- Throws:
IllegalStateException
-
get
Get the element at the given index from the vector and sets the state in holder. If element at given index is null, holder.isSet will be zero.- Parameters:
index
- position of element
-
getObject
Same asget(int)
.- Specified by:
getObject
in interfaceValueVector
- Parameters:
index
- position of element- Returns:
- element at given index
-
getObjectNoOverflow
Same asget(int)
.- Parameters:
index
- position of element- Returns:
- element at given index
-
set
public void set(int index, int value) Set the element at the given index to the given value.- Parameters:
index
- position of elementvalue
- value of element
-
set
Set the element at the given index to the value set in data holder. If the value in holder is not indicated as set, element in the at the given index will be null.- Parameters:
index
- position of elementholder
- nullable data holder for value of element- Throws:
IllegalArgumentException
-
set
Set the element at the given index to the value set in data holder.- Parameters:
index
- position of elementholder
- data holder for value of element
-
setSafe
public void setSafe(int index, int value) Same asset(int, int)
except that it handles the case when index is greater than or equal to existing value capacityBaseFixedWidthVector.getValueCapacity()
.- Parameters:
index
- position of elementvalue
- value of element
-
setSafe
Same asset(int, NullableUInt4Holder)
except that it handles the case when index is greater than or equal to existing value capacityBaseFixedWidthVector.getValueCapacity()
.- Parameters:
index
- position of elementholder
- nullable data holder for value of element- Throws:
IllegalArgumentException
-
setSafe
Same asset(int, UInt4Holder)
except that it handles the case when index is greater than or equal to existing value capacityBaseFixedWidthVector.getValueCapacity()
.- Parameters:
index
- position of elementholder
- data holder for value of element
-
set
public void set(int index, int isSet, int value) Sets the value at index to value isSet > 0, otherwise sets the index position to invalid/null. -
setSafe
public void setSafe(int index, int isSet, int value) Same asset(int, int, int)
but will reallocate if the buffer if index is larger than the current capacity. -
getTransferPair
Description copied from class:BaseFixedWidthVector
Construct a transfer pair of this vector and another vector of same type.- Specified by:
getTransferPair
in interfaceValueVector
- Specified by:
getTransferPair
in classBaseFixedWidthVector
- Parameters:
ref
- name of the target vectorallocator
- allocator for the target vector- Returns:
- TransferPair
-
getTransferPair
Construct a TransferPair comprising this and a target vector of the same type.- Specified by:
getTransferPair
in interfaceValueVector
- Specified by:
getTransferPair
in classBaseFixedWidthVector
- Parameters:
field
- Field object used by the target vectorallocator
- allocator for the target vector- Returns:
TransferPair
-
makeTransferPair
Description copied from interface:ValueVector
Makes a new transfer pair used to transfer underlying buffers.- Specified by:
makeTransferPair
in interfaceValueVector
- Parameters:
to
- the target for the transfer- Returns:
- a new
transfer pair
that is used to transfer underlying buffers into the target vector.
-
setWithPossibleTruncate
public void setWithPossibleTruncate(int index, long value) Description copied from interface:BaseIntVector
Sets the value at index, note this value may need to be truncated. Note this is safe version (i.e. call setSafe(int, ...) method in vector)- Specified by:
setWithPossibleTruncate
in interfaceBaseIntVector
-
setUnsafeWithPossibleTruncate
public void setUnsafeWithPossibleTruncate(int index, long value) Description copied from interface:BaseIntVector
Sets the value at index, note this value may need to be truncated. Note this is unsafe version (i.e. call set(int, ...) method in vector)- Specified by:
setUnsafeWithPossibleTruncate
in interfaceBaseIntVector
-
getValueAsLong
public long getValueAsLong(int index) Description copied from interface:BaseIntVector
Gets the value at index. This value may have been extended to long and will throwNullPointerException
if the value is null. Note null check could be turned off viaNullCheckingForGet
.- Specified by:
getValueAsLong
in interfaceBaseIntVector
-
toString
Description copied from class:BaseValueVector
Representation of vector suitable for debugging.- Overrides:
toString
in classBaseValueVector
-