public final class SmallIntVector extends BaseDataValueVector implements FixedWidthVector
VALUE_WIDTH
(= 2)
bytes.Modifier and Type | Class and Description |
---|---|
class |
SmallIntVector.Accessor |
class |
SmallIntVector.Mutator
SmallInt.Mutator implements a mutable vector of fixed width values.
|
BaseValueVector.BaseAccessor, BaseValueVector.BaseMutator
Modifier and Type | Field and Description |
---|---|
static int |
MAX_SCALAR_COUNT
Maximum number of values that this fixed-width vector can hold
and stay below the maximum vector size limit and/or stay below
the maximum row count.
|
static int |
MAX_VALUE_COUNT
Maximum number of values that this fixed-width vector can hold
and stay below the maximum vector size limit.
|
static int |
NET_MAX_SCALAR_SIZE
Actual maximum vector size, in bytes, given the number of fixed-width
values that either fit in the maximum overall vector size, or that
is no larger than the maximum vector item count.
|
static int |
VALUE_WIDTH
Width of each fixed-width value.
|
data, emptyByteArray
allocator, field, INITIAL_VALUE_ALLOCATION, MAX_ALLOCATION_SIZE
BITS_VECTOR_NAME, MAX_BUFFER_SIZE, MAX_ROW_COUNT, MIN_ROW_COUNT, OFFSETS_VECTOR_NAME, VALUES_VECTOR_NAME
Constructor and Description |
---|
SmallIntVector(MaterializedField field,
BufferAllocator allocator) |
Modifier and Type | Method and Description |
---|---|
void |
allocateNew()
Allocate new buffers.
|
void |
allocateNew(int valueCount)
Allocate a new buffer that supports setting at least the provided number of
values.
|
boolean |
allocateNewSafe()
Allocates new buffers.
|
void |
copyEntry(int toIndex,
ValueVector from,
int fromIndex) |
void |
copyFrom(int fromIndex,
int thisIndex,
SmallIntVector from) |
void |
copyFromSafe(int fromIndex,
int thisIndex,
SmallIntVector from) |
void |
decrementAllocationMonitor() |
SmallIntVector.Accessor |
getAccessor()
Returns an
accessor that is used to read from this vector
instance. |
int |
getBufferSizeFor(int valueCount)
Returns the number of bytes that is used by this vector if it holds the given number
of values.
|
SmallIntVector.Mutator |
getMutator()
Returns an
mutator that is used to write to this vector
instance. |
int |
getPayloadByteCount(int valueCount)
Return the number of value bytes consumed by actual data.
|
FieldReader |
getReader()
Returns a
field reader that supports reading values
from this vector. |
TransferPair |
getTransferPair(BufferAllocator allocator)
Returns a
transfer pair , creating a new target vector of
the same type. |
TransferPair |
getTransferPair(String ref,
BufferAllocator allocator) |
int |
getValueCapacity()
Returns the maximum number of values that can be stored in this vector instance.
|
int |
getValueWidth()
The width of a record in bytes.
|
void |
load(UserBitShared.SerializedField metadata,
DrillBuf buffer)
Load the data provided in the buffer.
|
TransferPair |
makeTransferPair(ValueVector to)
Returns a new
transfer pair that is used to transfer underlying
buffers into the target vector. |
void |
reAlloc()
Allocate new buffer with double capacity, and copy data into the new
buffer.
|
DrillBuf |
reallocRaw(int newAllocationSize)
Core of vector allocation.
|
void |
reset()
This method has a similar effect of allocateNew() without actually clearing and reallocating
the value vector.
|
void |
setInitialCapacity(int valueCount)
Set the initial record capacity
|
void |
splitAndTransferTo(int startIndex,
int length,
SmallIntVector target) |
void |
toNullable(ValueVector nullableVector)
Convert a non-nullable vector to nullable by shuffling the data from
one to the other.
|
void |
transferTo(SmallIntVector target) |
void |
zeroVector()
Zero out the underlying buffer backing this vector.
|
clear, close, collectLedgers, exchange, getAllocatedSize, getBuffer, getBuffers, getBufferSize
checkBufRefs, fillBitsVector, getAllocator, getField, getField, getMetadata, getMetadataBuilder, iterator, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
clear, close, collectLedgers, exchange, getAllocatedSize, getAllocator, getBuffers, getBufferSize, getField, getMetadata
forEach, iterator, spliterator
public static final int VALUE_WIDTH
public static final int MAX_VALUE_COUNT
public static final int MAX_SCALAR_COUNT
Note: MAX_ROW_COUNT is defined in the parent ValueVector class as the maximum number of rows in a record batch (64K). Use this in place of the Character.MAX_SIZE value previously used.
public static final int NET_MAX_SCALAR_SIZE
public SmallIntVector(MaterializedField field, BufferAllocator allocator)
public FieldReader getReader()
ValueVector
field reader
that supports reading values
from this vector.getReader
in interface ValueVector
public int getBufferSizeFor(int valueCount)
ValueVector
getBufferSizeFor
in interface ValueVector
valueCount
- the number of values to assume this vector containspublic int getValueCapacity()
ValueVector
getValueCapacity
in interface ValueVector
public SmallIntVector.Accessor getAccessor()
ValueVector
accessor
that is used to read from this vector
instance.getAccessor
in interface ValueVector
public SmallIntVector.Mutator getMutator()
ValueVector
mutator
that is used to write to this vector
instance.getMutator
in interface ValueVector
public void setInitialCapacity(int valueCount)
ValueVector
setInitialCapacity
in interface ValueVector
public void allocateNew()
ValueVector
allocateNew
in interface ValueVector
public boolean allocateNewSafe()
ValueVector
allocateNewSafe
in interface ValueVector
public void allocateNew(int valueCount)
allocateNew
in interface FixedWidthVector
valueCount
- OutOfMemoryException
- if it can't allocate the new bufferpublic void reset()
BaseDataValueVector
reset
in class BaseDataValueVector
public void reAlloc()
org.apache.drill.exec.memory.OutOfMemoryException
- if it can't allocate the new bufferpublic DrillBuf reallocRaw(int newAllocationSize)
BaseDataValueVector
reallocRaw
in class BaseDataValueVector
newAllocationSize
- new buffer size as a power of twopublic void zeroVector()
zeroVector
in interface FixedWidthVector
public void load(UserBitShared.SerializedField metadata, DrillBuf buffer)
ValueVector
load
in interface ValueVector
metadata
- Metadata used to decode the incoming buffer.buffer
- The buffer that contains the ValueVector.public TransferPair getTransferPair(BufferAllocator allocator)
ValueVector
transfer pair
, creating a new target vector of
the same type.getTransferPair
in interface ValueVector
getTransferPair
in class BaseValueVector
public TransferPair getTransferPair(String ref, BufferAllocator allocator)
getTransferPair
in interface ValueVector
public TransferPair makeTransferPair(ValueVector to)
ValueVector
transfer pair
that is used to transfer underlying
buffers into the target vector.makeTransferPair
in interface ValueVector
public void transferTo(SmallIntVector target)
public void splitAndTransferTo(int startIndex, int length, SmallIntVector target)
public int getPayloadByteCount(int valueCount)
ValueVector
getPayloadByteCount
in interface ValueVector
public int getValueWidth()
FixedWidthVector
getValueWidth
in interface FixedWidthVector
public void copyFrom(int fromIndex, int thisIndex, SmallIntVector from)
public void copyFromSafe(int fromIndex, int thisIndex, SmallIntVector from)
public void copyEntry(int toIndex, ValueVector from, int fromIndex)
copyEntry
in interface ValueVector
public void decrementAllocationMonitor()
public void toNullable(ValueVector nullableVector)
ValueVector
toNullable
in interface ValueVector
toNullable
in class BaseValueVector
nullableVector
- nullable vector of the same minor type as
this vectorCopyright © 1970 The Apache Software Foundation. All rights reserved.