Package org.apache.drill.exec.vector
Class NullableVarDecimalVector
java.lang.Object
org.apache.drill.exec.vector.BaseValueVector
org.apache.drill.exec.vector.BaseDataValueVector
org.apache.drill.exec.vector.NullableVarDecimalVector
- All Implemented Interfaces:
Closeable,AutoCloseable,Iterable<ValueVector>,NullableVector,ValueVector,VariableWidthVector
public final class NullableVarDecimalVector
extends BaseDataValueVector
implements VariableWidthVector, NullableVector
NullableVarDecimal implements a vector of values which could be null. Elements in the vector
are first checked against a fixed length vector of boolean values. Then the element is retrieved
from the base class (if not null).
NB: this class is automatically generated from NullableValueVectors.java and ValueVectorTypes.tdd using FreeMarker.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionfinal classfinal classNested classes/interfaces inherited from class org.apache.drill.exec.vector.BaseValueVector
BaseValueVector.BaseAccessor, BaseValueVector.BaseMutatorNested classes/interfaces inherited from interface org.apache.drill.exec.vector.VariableWidthVector
VariableWidthVector.VariableWidthAccessor, VariableWidthVector.VariableWidthMutator -
Field Summary
Fields inherited from class org.apache.drill.exec.vector.BaseDataValueVector
data, emptyByteArrayFields inherited from class org.apache.drill.exec.vector.BaseValueVector
allocator, field, INITIAL_VALUE_ALLOCATION, MAX_ALLOCATION_SIZEFields inherited from interface org.apache.drill.exec.vector.NullableVector
bitsFieldFields inherited from interface org.apache.drill.exec.vector.ValueVector
BITS_VECTOR_NAME, MAX_BUFFER_SIZE, MAX_ROW_COUNT, MIN_ROW_COUNT, OFFSETS_VECTOR_NAME, VALUES_VECTOR_NAMEFields inherited from interface org.apache.drill.exec.vector.VariableWidthVector
DEFAULT_RECORD_BYTE_COUNT, MIN_BYTE_COUNT, offsetsField -
Constructor Summary
ConstructorsConstructorDescriptionNullableVarDecimalVector(MaterializedField field, BufferAllocator allocator) -
Method Summary
Modifier and TypeMethodDescriptionvoidAllocate new buffers.voidallocateNew(int totalBytes, int valueCount) Allocate a new memory space for this vector.booleanAllocates new buffers.voidclear()Release the underlying DrillBuf and reset the ValueVector to empty.voidclose()Alternative to clear().voidcollectLedgers(Set<AllocationManager.BufferLedger> ledgers) Add the ledgers underlying the buffers underlying the components of the vector to the set provided.voidcopyEntry(int toIndex, ValueVector from, int fromIndex) voidcopyFrom(int fromIndex, int thisIndex, NullableVarDecimalVector from) voidcopyFromSafe(int fromIndex, int thisIndex, NullableVarDecimalVector from) voidcopyFromSafe(int fromIndex, int thisIndex, VarDecimalVector from) voidexchange(ValueVector other) Exchange state with another value vector of the same type.Returns anaccessorthat is used to read from this vector instance.intReturns the total size of buffers allocated by this vector.intDrillBuf[]getBuffers(boolean clear) Return the underlying buffers associated with this vector.intReturns the number of bytes that is used by this vector instance.intgetBufferSizeFor(int valueCount) Returns the number of bytes that is used by this vector if it holds the given number of values.intProvide the maximum amount of variable width bytes that can be stored int his vector.intReturns anmutatorthat is used to write to this vector instance.intgetPayloadByteCount(int valueCount) Return the number of value bytes consumed by actual data.Returns afield readerthat supports reading values from this vector.getTransferPair(String ref, BufferAllocator allocator) getTransferPair(BufferAllocator allocator) Returns atransfer pair, creating a new target vector of the same type.intReturns the maximum number of values that can be stored in this vector instance.voidload(UserBitShared.SerializedField metadata, DrillBuf buffer) Load the data provided in the buffer.Returns a newtransfer pairthat is used to transfer underlying buffers into the target vector.reallocRaw(int newAllocationSize) Core of vector allocation.voidreset()This method has a similar effect of allocateNew() without actually clearing and reallocating the value vector.voidsetInitialCapacity(int numRecords) Set the initial record capacityvoidsplitAndTransferTo(int startIndex, int length, NullableVarDecimalVector target) voidtransferTo(NullableVarDecimalVector target) Methods inherited from class org.apache.drill.exec.vector.BaseValueVector
checkBufRefs, fillBitsVector, getAllocator, getField, getField, getMetadata, iterator, toNullable, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, iterator, spliteratorMethods inherited from interface org.apache.drill.exec.vector.ValueVector
getAllocator, getField, getMetadata, toNullable
-
Constructor Details
-
NullableVarDecimalVector
-
-
Method Details
-
getReader
Description copied from interface:ValueVectorReturns afield readerthat supports reading values from this vector.- Specified by:
getReaderin interfaceValueVector
-
getValueCapacity
public int getValueCapacity()Description copied from interface:ValueVectorReturns the maximum number of values that can be stored in this vector instance.- Specified by:
getValueCapacityin interfaceValueVector
-
getBuffers
Description copied from interface:ValueVectorReturn the underlying buffers associated with this vector. Note that this doesn't impact the reference counts for this buffer so it only should be used for in-context access. Also note that this buffer changes regularly thus external classes shouldn't hold a reference to it (unless they change it).- Specified by:
getBuffersin interfaceValueVector- Overrides:
getBuffersin classBaseDataValueVector- Parameters:
clear- Whether to clear vector before returning; the buffers will still be refcounted; but the returned array will be the only reference to them- Returns:
- The underlying
buffersthat is used by this vector instance.
-
close
public void close()Description copied from interface:ValueVectorAlternative to clear(). Allows use as an AutoCloseable in try-with-resources.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceValueVector- Overrides:
closein classBaseDataValueVector
-
clear
public void clear()Description copied from interface:ValueVectorRelease the underlying DrillBuf and reset the ValueVector to empty.- Specified by:
clearin interfaceValueVector- Overrides:
clearin classBaseDataValueVector
-
getBufferSize
public int getBufferSize()Description copied from interface:ValueVectorReturns the number of bytes that is used by this vector instance. This is a bit of a misnomer. Returns the number of bytes used by data in this instance.- Specified by:
getBufferSizein interfaceValueVector- Overrides:
getBufferSizein classBaseDataValueVector
-
getBufferSizeFor
public int getBufferSizeFor(int valueCount) Description copied from interface:ValueVectorReturns the number of bytes that is used by this vector if it holds the given number of values. The result will be the same as if Mutator.setValueCount() were called, followed by calling getBufferSize(), but without any of the closing side-effects that setValueCount() implies wrt finishing off the population of a vector. Some operations might wish to use this to determine how much memory has been used by a vector so far, even though it is not finished being populated.- Specified by:
getBufferSizeForin interfaceValueVector- Parameters:
valueCount- the number of values to assume this vector contains- Returns:
- the buffer size if this vector is holding valueCount values
-
getAllocatedSize
public int getAllocatedSize()Description copied from interface:ValueVectorReturns the total size of buffers allocated by this vector. Has meaning only when vectors are directly allocated and each vector has its own buffer. Does not have meaning for vectors deserialized from the network or disk in which multiple vectors share the same vector.- Specified by:
getAllocatedSizein interfaceValueVector- Overrides:
getAllocatedSizein classBaseDataValueVector- Returns:
- allocated buffer size, in bytes
-
getBuffer
- Overrides:
getBufferin classBaseDataValueVector
-
getValuesVector
- Specified by:
getValuesVectorin interfaceNullableVector
-
getBitsVector
- Specified by:
getBitsVectorin interfaceNullableVector
-
getOffsetVector
- Specified by:
getOffsetVectorin interfaceVariableWidthVector
-
setInitialCapacity
public void setInitialCapacity(int numRecords) Description copied from interface:ValueVectorSet the initial record capacity- Specified by:
setInitialCapacityin interfaceValueVector- Parameters:
numRecords-
-
getMetadataBuilder
- Overrides:
getMetadataBuilderin classBaseValueVector
-
allocateNew
public void allocateNew()Description copied from interface:ValueVectorAllocate new buffers. ValueVector implements logic to determine how much to allocate.- Specified by:
allocateNewin interfaceValueVector
-
allocateNewSafe
public boolean allocateNewSafe()Description copied from interface:ValueVectorAllocates new buffers. ValueVector implements logic to determine how much to allocate.- Specified by:
allocateNewSafein interfaceValueVector- Returns:
- Returns true if allocation was successful.
-
reallocRaw
Description copied from class:BaseDataValueVectorCore of vector allocation. Given a new size (which must be a power of two), allocate the new buffer, copy the current values, and leave the unused parts garbage-filled.- Specified by:
reallocRawin classBaseDataValueVector- Parameters:
newAllocationSize- new buffer size as a power of two- Returns:
- the new buffer
-
collectLedgers
Description copied from interface:ValueVectorAdd the ledgers underlying the buffers underlying the components of the vector to the set provided. Used to determine actual memory allocation.- Specified by:
collectLedgersin interfaceValueVector- Overrides:
collectLedgersin classBaseDataValueVector- Parameters:
ledgers- set of ledgers to which to add ledgers for this vector
-
getPayloadByteCount
public int getPayloadByteCount(int valueCount) Description copied from interface:ValueVectorReturn the number of value bytes consumed by actual data.- Specified by:
getPayloadByteCountin interfaceValueVector
-
allocateNew
public void allocateNew(int totalBytes, int valueCount) Description copied from interface:VariableWidthVectorAllocate a new memory space for this vector. Must be called prior to using the ValueVector.- Specified by:
allocateNewin interfaceVariableWidthVector- Parameters:
totalBytes- Desired size of the underlying data buffer.valueCount- Number of values in the vector.
-
reset
public void reset()Description copied from class:BaseDataValueVectorThis method has a similar effect of allocateNew() without actually clearing and reallocating the value vector. The purpose is to move the value vector to a "mutate" state- Overrides:
resetin classBaseDataValueVector
-
getByteCapacity
public int getByteCapacity()Description copied from interface:VariableWidthVectorProvide the maximum amount of variable width bytes that can be stored int his vector.- Specified by:
getByteCapacityin interfaceVariableWidthVector- Returns:
-
getCurrentSizeInBytes
public int getCurrentSizeInBytes()- Specified by:
getCurrentSizeInBytesin interfaceVariableWidthVector
-
getTransferPair
Description copied from interface:ValueVectorReturns atransfer pair, creating a new target vector of the same type.- Specified by:
getTransferPairin interfaceValueVector- Overrides:
getTransferPairin classBaseValueVector
-
getTransferPair
- Specified by:
getTransferPairin interfaceValueVector
-
makeTransferPair
Description copied from interface:ValueVectorReturns a newtransfer pairthat is used to transfer underlying buffers into the target vector.- Specified by:
makeTransferPairin interfaceValueVector
-
transferTo
-
splitAndTransferTo
-
getAccessor
Description copied from interface:ValueVectorReturns anaccessorthat is used to read from this vector instance.- Specified by:
getAccessorin interfaceValueVector- Specified by:
getAccessorin interfaceVariableWidthVector
-
getMutator
Description copied from interface:ValueVectorReturns anmutatorthat is used to write to this vector instance.- Specified by:
getMutatorin interfaceValueVector- Specified by:
getMutatorin interfaceVariableWidthVector
-
convertToRequiredVector
-
getBitsValueCapacity
public int getBitsValueCapacity()- Returns:
- Underlying "bits" vector value capacity
-
copyFrom
-
copyFromSafe
-
copyFromSafe
-
copyEntry
- Specified by:
copyEntryin interfaceValueVector
-
exchange
Description copied from interface:ValueVectorExchange state with another value vector of the same type. Used to implement look-ahead writers.- Specified by:
exchangein interfaceValueVector- Overrides:
exchangein classBaseDataValueVector
-