Class ListState.ListVectorState
java.lang.Object
org.apache.drill.exec.physical.resultSet.impl.ListState.ListVectorState
- All Implemented Interfaces:
VectorState
- Enclosing class:
- ListState
Wrapper around the list vector (and its optional contained union).
Manages the state of the "overhead" vectors such as the bits and
offset vectors for the list, and (via the union vector state) the
types vector for the union. The union vector state starts of as
a dummy state (before the list has been "promoted" to a union)
then becomes populated with the union state once the list is
promoted.
-
Constructor Summary
ConstructorDescriptionListVectorState
(ListWriterImpl writer, WriterEvents elementWriter, ListVector vector) ListVectorState
(UnionWriterImpl writer, ListVector vector) -
Method Summary
Modifier and TypeMethodDescriptionint
allocate
(int cardinality) Allocate a new vector with the number of elements given.void
close()
Clear the vector(s) associated with this state.void
dump
(HierarchicalFormatter format) void
A batch is being harvested after an overflow.boolean
Report whether this column is projected (has materialized vectors), or is unprojected (has no materialized backing.)void
rollover
(int cardinality) A vector has overflowed.void
A new batch is starting while an look-ahead vector exists.vector()
Underlying vector: the one presented to the consumer of the result set loader.
-
Constructor Details
-
ListVectorState
-
ListVectorState
-
-
Method Details
-
allocate
public int allocate(int cardinality) Description copied from interface:VectorState
Allocate a new vector with the number of elements given. If the vector is an array, then the cardinality given is the number of arrays.- Specified by:
allocate
in interfaceVectorState
- Parameters:
cardinality
- number of elements desired in the allocated vector- Returns:
- the number of bytes allocated
-
rollover
public void rollover(int cardinality) Description copied from interface:VectorState
A vector has overflowed. Create a new look-ahead vector of the given cardinality, then copy the overflow values from the main vector to the look-ahead vector.- Specified by:
rollover
in interfaceVectorState
- Parameters:
cardinality
- the number of elements in the new vector. If this vector is an array, then this is the number of arrays
-
harvestWithLookAhead
public void harvestWithLookAhead()Description copied from interface:VectorState
A batch is being harvested after an overflow. Put the full batch back into the main vector so it can be harvested.- Specified by:
harvestWithLookAhead
in interfaceVectorState
-
startBatchWithLookAhead
public void startBatchWithLookAhead()Description copied from interface:VectorState
A new batch is starting while an look-ahead vector exists. Move the look-ahead buffers into the main vector to prepare for writing the rest of the batch.- Specified by:
startBatchWithLookAhead
in interfaceVectorState
-
close
public void close()Description copied from interface:VectorState
Clear the vector(s) associated with this state.- Specified by:
close
in interfaceVectorState
-
vector
Description copied from interface:VectorState
Underlying vector: the one presented to the consumer of the result set loader.- Specified by:
vector
in interfaceVectorState
-
isProjected
public boolean isProjected()Description copied from interface:VectorState
Report whether this column is projected (has materialized vectors), or is unprojected (has no materialized backing.)- Specified by:
isProjected
in interfaceVectorState
- Returns:
- true if the column is projected to the output, false if not
-
dump
- Specified by:
dump
in interfaceVectorState
-