public abstract class BaseRepeatedValueVector extends BaseValueVector implements RepeatedValueVector, BaseListVector
Modifier and Type | Field and Description |
---|---|
protected CallBack |
callBack |
static String |
DATA_VECTOR_NAME |
static FieldVector |
DEFAULT_DATA_VECTOR |
protected String |
defaultDataVectorName |
static byte |
OFFSET_WIDTH |
protected long |
offsetAllocationSizeInBytes |
protected ArrowBuf |
offsetBuffer |
protected int |
valueCount |
protected FieldVector |
vector |
allocator, fieldReader, INITIAL_VALUE_ALLOCATION, MAX_ALLOCATION_SIZE, MAX_ALLOCATION_SIZE_PROPERTY
DEFAULT_REPEAT_PER_RECORD
Modifier | Constructor and Description |
---|---|
protected |
BaseRepeatedValueVector(String name,
BufferAllocator allocator,
CallBack callBack) |
protected |
BaseRepeatedValueVector(String name,
BufferAllocator allocator,
FieldVector vector,
CallBack callBack) |
Modifier and Type | Method and Description |
---|---|
<T extends ValueVector> |
addOrGetVector(FieldType fieldType)
Initialize the data vector (and execute callback) if it hasn't already been done,
returns the data vector.
|
boolean |
allocateNewSafe()
Allocates new buffers.
|
protected void |
allocateOffsetBuffer(long size) |
void |
clear()
Release any owned ArrowBuf and reset the ValueVector to the initial state.
|
ArrowBuf[] |
getBuffers(boolean clear)
Return the underlying buffers associated with this vector.
|
int |
getBufferSize()
Get the number of bytes used by this vector.
|
int |
getBufferSizeFor(int valueCount)
Returns the number of bytes that is used by this vector if it holds the given number
of values.
|
FieldVector |
getDataVector()
Get the data vector.
|
int |
getInnerValueCount() |
int |
getInnerValueCountAt(int index)
Returns the value count for inner data vector at a particular index.
|
String |
getName()
Gets the name of the vector.
|
protected int |
getOffsetBufferValueCapacity() |
UInt4Vector |
getOffsetVector()
Deprecated.
This API will be removed, as the current implementations no longer hold inner offset vectors.
|
int |
getValueCapacity()
Returns the maximum number of values that can be stored in this vector instance.
|
int |
getValueCount()
Gets the number of values.
|
boolean |
isEmpty(int index)
Return if value at index is empty (this implementation is always false).
|
boolean |
isNull(int index)
Return if value at index is null (this implementation is always false).
|
Iterator<ValueVector> |
iterator() |
void |
reAlloc()
Allocate new buffer with double capacity, and copy data into the new buffer.
|
protected void |
reallocOffsetBuffer() |
protected void |
replaceDataVector(FieldVector v) |
void |
reset()
Reset the ValueVector to the initial state without releasing any owned ArrowBuf.
|
void |
setInitialCapacity(int numRecords)
Set the initial record capacity.
|
void |
setInitialCapacity(int numRecords,
double density)
Specialized version of setInitialCapacity() for ListVector.
|
void |
setInitialTotalCapacity(int numRecords,
int totalNumberOfElements)
Specialized version of setInitialTotalCapacity() for ListVector.
|
void |
setValueCount(int valueCount)
Preallocates the number of repeated values.
|
int |
size()
Get value indicating if inner vector is set.
|
int |
startNewValue(int index)
Starts a new repeated value.
|
checkBufRefs, close, copyFrom, copyFromSafe, getAllocator, getReader, getReaderImpl, getTransferPair, getValidityBufferSizeFromCount, releaseBuffer, toString, transferBuffer
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getElementEndIndex, getElementStartIndex
getChildrenFromFields, getDataBufferAddress, getFieldBuffers, getFieldInnerVectors, getOffsetBufferAddress, getValidityBufferAddress, initializeChildrenFromFields, loadFieldBuffers, setNull
accept, allocateNew, close, copyFrom, copyFromSafe, getAllocator, getDataBuffer, getField, getMinorType, getNullCount, getObject, getOffsetBuffer, getReader, getTransferPair, getTransferPair, getTransferPair, getValidityBuffer, hashCode, hashCode, makeTransferPair, validate, validateFull
forEach, spliterator
public static final FieldVector DEFAULT_DATA_VECTOR
public static final String DATA_VECTOR_NAME
public static final byte OFFSET_WIDTH
protected ArrowBuf offsetBuffer
protected FieldVector vector
protected final CallBack callBack
protected int valueCount
protected long offsetAllocationSizeInBytes
protected String defaultDataVectorName
protected BaseRepeatedValueVector(String name, BufferAllocator allocator, CallBack callBack)
protected BaseRepeatedValueVector(String name, BufferAllocator allocator, FieldVector vector, CallBack callBack)
public String getName()
ValueVector
getName
in interface ValueVector
getName
in class BaseValueVector
public boolean allocateNewSafe()
ValueVector
allocateNewSafe
in interface ValueVector
protected void allocateOffsetBuffer(long size)
public void reAlloc()
ValueVector
reAlloc
in interface ValueVector
protected void reallocOffsetBuffer()
@Deprecated public UInt4Vector getOffsetVector()
getOffsetVector
in interface RepeatedValueVector
public FieldVector getDataVector()
RepeatedValueVector
getDataVector
in interface RepeatedValueVector
public void setInitialCapacity(int numRecords)
ValueVector
setInitialCapacity
in interface ValueVector
numRecords
- the initial record capacity.public void setInitialCapacity(int numRecords, double density)
setInitialCapacity
in interface DensityAwareVector
numRecords
- value countdensity
- density of ListVector. Density is the average size of
list per position in the List vector. For example, a
density value of 10 implies each position in the list
vector has a list of 10 values.
A density value of 0.1 implies out of 10 positions in
the list vector, 1 position has a list of size 1 and
remaining positions are null (no lists) or empty lists.
This helps in tightly controlling the memory we provision
for inner data vector.public void setInitialTotalCapacity(int numRecords, int totalNumberOfElements)
numRecords
- value counttotalNumberOfElements
- the total number of elements to to allow
for in this vector across all records.public int getValueCapacity()
ValueVector
getValueCapacity
in interface ValueVector
protected int getOffsetBufferValueCapacity()
public int getBufferSize()
ValueVector
getBufferSize
in interface ValueVector
public int getBufferSizeFor(int valueCount)
ValueVector
getBufferSizeFor
in interface ValueVector
valueCount
- the number of values to assume this vector containspublic Iterator<ValueVector> iterator()
iterator
in interface Iterable<ValueVector>
iterator
in class BaseValueVector
public void clear()
ValueVector
clear
in interface ValueVector
clear
in class BaseValueVector
public void reset()
ValueVector
reset
in interface ValueVector
public ArrowBuf[] getBuffers(boolean clear)
ValueVector
getBuffers
in interface ValueVector
clear
- Whether to clear vector before returning; the buffers will still be refcounted;
but the returned array will be the only reference to thembuffers
that is used by this vector instance.public int size()
public <T extends ValueVector> AddOrGetResult<T> addOrGetVector(FieldType fieldType)
protected void replaceDataVector(FieldVector v)
public int getValueCount()
ValueVector
getValueCount
in interface ValueVector
public int getInnerValueCount()
public int getInnerValueCountAt(int index)
public boolean isNull(int index)
isNull
in interface ValueVector
index
- index to check for nullpublic boolean isEmpty(int index)
public int startNewValue(int index)
public void setValueCount(int valueCount)
setValueCount
in interface ValueVector
Copyright © 2023 The Apache Software Foundation. All rights reserved.