Class RepeatedListState
java.lang.Object
org.apache.drill.exec.physical.resultSet.impl.ContainerState
org.apache.drill.exec.physical.resultSet.impl.RepeatedListState
- All Implemented Interfaces:
RepeatedListWriter.ArrayListener
Represents the internal state of a RepeatedList vector. The repeated list
is wrapped in a repeated list "column state" that manages the column as a
whole. The repeated list acts as a container which the
RepeatedListState
implements. At the vector level, we track the repeated list vector, but
only perform operations on its associated offset vector.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Repeated list column state.static class
Track the repeated list vector. -
Field Summary
Fields inherited from class org.apache.drill.exec.physical.resultSet.impl.ContainerState
loader, parentColumn, projectionSet, vectorCache
-
Constructor Summary
ConstructorDescriptionRepeatedListState
(org.apache.drill.exec.physical.resultSet.impl.LoaderInternals loader, ResultVectorCache vectorCache) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addColumn
(ColumnState colState) protected Collection<ColumnState>
int
protected boolean
The repeated list vector does not support versioning of maps within the list.setChild
(ArrayWriter array, MaterializedField field) setChild
(ArrayWriter array, ColumnMetadata columnSchema) Methods inherited from class org.apache.drill.exec.physical.resultSet.impl.ContainerState
addColumn, bindColumnState, close, harvestWithLookAhead, loader, projection, rollover, startBatch, updateCardinality, vectorCache
-
Constructor Details
-
RepeatedListState
public RepeatedListState(org.apache.drill.exec.physical.resultSet.impl.LoaderInternals loader, ResultVectorCache vectorCache)
-
-
Method Details
-
innerCardinality
public int innerCardinality()- Specified by:
innerCardinality
in classContainerState
-
addColumn
- Specified by:
addColumn
in classContainerState
-
columnStates
- Specified by:
columnStates
in classContainerState
-
isVersioned
protected boolean isVersioned()The repeated list vector does not support versioning of maps within the list. (That is, if a new field is added in the overflow row, it will appear in the output of the first batch.) The reasons for not versioning are simple: 1) repeated lists are a very obscure and low-priority area of Drill, and 2) given that background, the additional work of versioning is not worth the effort.- Specified by:
isVersioned
in classContainerState
- Returns:
true
if versioned
-
setChild
- Specified by:
setChild
in interfaceRepeatedListWriter.ArrayListener
-
setChild
- Specified by:
setChild
in interfaceRepeatedListWriter.ArrayListener
-