Class MapVector
java.lang.Object
org.apache.drill.exec.vector.complex.AbstractContainerVector
org.apache.drill.exec.vector.complex.AbstractMapVector
org.apache.drill.exec.vector.complex.MapVector
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Iterable<ValueVector>
,ValueVector
- Direct Known Subclasses:
VectorAccessibleComplexWriter
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
protected static class
class
-
Field Summary
Fields inherited from class org.apache.drill.exec.vector.complex.AbstractContainerVector
allocator, callBack, field
Fields 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_NAME
-
Constructor Summary
ConstructorDescriptionMapVector
(String path, BufferAllocator allocator, CallBack callBack) MapVector
(MaterializedField field, BufferAllocator allocator, CallBack callBack) -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Release the underlying DrillBuf and reset the ValueVector to empty.void
close()
Clears out all underlying child vectors.void
copyEntry
(int toIndex, ValueVector from, int fromIndex) void
copyFromSafe
(int fromIndex, int thisIndex, MapVector from) void
copyFromSafe
(int fromSubIndex, int thisIndex, RepeatedMapVector from) void
exchange
(ValueVector other) Exchange state with another value vector of the same type.Returns anaccessor
that is used to read from this vector instance.int
Returns the total size of buffers allocated by this vector.DrillBuf[]
getBuffers
(boolean clear) Return the underlying buffers associated with this vector.int
Returns the number of bytes that is used by 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.Get the metadata for this field.Returns anmutator
that is used to write to this vector instance.Returns afield reader
that 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.int
Returns the maximum number of values that can be stored in this vector instance.getVectorById
(int id) void
load
(UserBitShared.SerializedField metadata, DrillBuf buf) Load the data provided in the buffer.Returns a newtransfer pair
that is used to transfer underlying buffers into the target vector.void
setInitialCapacity
(int numRecords) Set the initial record capacityvoid
setMapValueCount
(int valueCount) Set the value count for the map without setting the counts for the contained vectors.protected boolean
void
toNullable
(ValueVector nullableVector) Convert a non-nullable vector to nullable by shuffling the data from one to the other.Methods inherited from class org.apache.drill.exec.vector.complex.AbstractMapVector
addOrGet, allocateNewSafe, collectLedgers, getChild, getChildByOrdinal, getChildren, getChildVectorWithOrdinal, getPayloadByteCount, getPrimitiveVectors, iterator, putChild, putVector, size
Methods inherited from class org.apache.drill.exec.vector.complex.AbstractContainerVector
allocateNew, getAllocator, getChild, getChildFieldNames, getField, typeify
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
TYPE
-
-
Constructor Details
-
MapVector
-
MapVector
-
-
Method Details
-
getReader
Description copied from interface:ValueVector
Returns afield reader
that supports reading values from this vector. -
copyFromSafe
-
copyFromSafe
-
copyEntry
-
supportsDirectRead
protected boolean supportsDirectRead()- Overrides:
supportsDirectRead
in classAbstractContainerVector
-
fieldNameIterator
-
setInitialCapacity
public void setInitialCapacity(int numRecords) Description copied from interface:ValueVector
Set the initial record capacity -
getBufferSize
public int getBufferSize()Description copied from interface:ValueVector
Returns 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:
getBufferSize
in interfaceValueVector
- Overrides:
getBufferSize
in classAbstractMapVector
-
getAllocatedSize
public int getAllocatedSize()Description copied from interface:ValueVector
Returns 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:
getAllocatedSize
in interfaceValueVector
- Overrides:
getAllocatedSize
in classAbstractMapVector
- Returns:
- allocated buffer size, in bytes
-
getBufferSizeFor
public int getBufferSizeFor(int valueCount) Description copied from interface:ValueVector
Returns 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.- Parameters:
valueCount
- the number of values to assume this vector contains- Returns:
- the buffer size if this vector is holding valueCount values
-
getBuffers
Description copied from interface:ValueVector
Return 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:
getBuffers
in interfaceValueVector
- Overrides:
getBuffers
in classAbstractMapVector
- 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
buffers
that is used by this vector instance.
-
getTransferPair
Description copied from interface:ValueVector
Returns atransfer pair
, creating a new target vector of the same type. -
makeTransferPair
Description copied from interface:ValueVector
Returns a newtransfer pair
that is used to transfer underlying buffers into the target vector. -
getTransferPair
-
getValueCapacity
public int getValueCapacity()Description copied from interface:ValueVector
Returns the maximum number of values that can be stored in this vector instance. -
getAccessor
Description copied from interface:ValueVector
Returns anaccessor
that is used to read from this vector instance. -
getMetadata
Description copied from interface:ValueVector
Get the metadata for this field. Used in serialization- Returns:
- FieldMetadata for this field.
-
getMutator
Description copied from interface:ValueVector
Returns anmutator
that is used to write to this vector instance. -
getVectorById
-
setMapValueCount
public void setMapValueCount(int valueCount) Set the value count for the map without setting the counts for the contained vectors. Use this only when the values of the contained vectors are set elsewhere in the code.- Parameters:
valueCount
- number of items in the map
-
clear
public void clear()Description copied from interface:ValueVector
Release the underlying DrillBuf and reset the ValueVector to empty. -
close
public void close()Description copied from class:AbstractContainerVector
Clears out all underlying child vectors.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceValueVector
- Overrides:
close
in classAbstractMapVector
-
toNullable
Description copied from interface:ValueVector
Convert a non-nullable vector to nullable by shuffling the data from one to the other. Avoids the need to generate copy code just to change mode. If this vector is non-nullable, accepts a nullable dual (same minor type, different mode.) If the vector is non-nullable, or non-scalar, then throws an exception.- Parameters:
nullableVector
- nullable vector of the same minor type as this vector
-
exchange
Description copied from interface:ValueVector
Exchange state with another value vector of the same type. Used to implement look-ahead writers.- Specified by:
exchange
in interfaceValueVector
- Overrides:
exchange
in classAbstractMapVector
-