Package org.apache.druid.segment.nested
Class NestedDataComplexColumn
- java.lang.Object
-
- org.apache.druid.segment.nested.NestedDataComplexColumn
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,BaseColumn
,ComplexColumn
- Direct Known Subclasses:
CompressedNestedDataComplexColumn
public abstract class NestedDataComplexColumn extends Object implements ComplexColumn
Describes the basic shape for any 'nested data' (StructuredData
)ComplexColumn
implementation along with basic facilities for caching any columns created and methods for retrieving selectors for nested field columns.NestedFieldVirtualColumn
allows query time use of the nested fields.
-
-
Constructor Summary
Constructors Constructor Description NestedDataComplexColumn()
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.druid.segment.column.BaseColumn
as, makeVectorValueSelector
-
Methods inherited from interface org.apache.druid.segment.column.ComplexColumn
close, getLength, getRowValue, makeColumnValueSelector, makeVectorObjectSelector
-
-
-
-
Method Detail
-
makeDimensionSelector
public abstract DimensionSelector makeDimensionSelector(List<NestedPathPart> path, ReadableOffset readableOffset, ExtractionFn fn)
Make aDimensionSelector
for a nested field column
-
makeColumnValueSelector
public abstract ColumnValueSelector<?> makeColumnValueSelector(List<NestedPathPart> path, ReadableOffset readableOffset)
Make aColumnValueSelector
for a nested field column
-
makeSingleValueDimensionVectorSelector
public abstract SingleValueDimensionVectorSelector makeSingleValueDimensionVectorSelector(List<NestedPathPart> path, ReadableVectorOffset readableOffset)
Make aSingleValueDimensionVectorSelector
for a nested field column
-
makeVectorObjectSelector
public abstract VectorObjectSelector makeVectorObjectSelector(List<NestedPathPart> path, ReadableVectorOffset readableOffset)
Make aVectorObjectSelector
for a nested field column
-
makeVectorValueSelector
public abstract VectorValueSelector makeVectorValueSelector(List<NestedPathPart> path, ReadableVectorOffset readableOffset)
Make aVectorValueSelector
for a nested field column
-
getNestedFields
public abstract List<List<NestedPathPart>> getNestedFields()
Get list of fields represented as a sequence ofNestedPathPart
-
getColumnTypes
@Nullable public abstract Set<ColumnType> getColumnTypes(List<NestedPathPart> path)
Get allColumnType
for the nested field column
-
getColumnHolder
@Nullable public abstract ColumnHolder getColumnHolder(List<NestedPathPart> path)
Get aColumnHolder
for a nested field column to retrieve metadata, the column itself, or indexes.
-
getColumnIndexSupplier
@Nullable public abstract ColumnIndexSupplier getColumnIndexSupplier(List<NestedPathPart> path)
Make aColumnIndexSupplier
for a nested field column
-
isNumeric
public abstract boolean isNumeric(List<NestedPathPart> path)
Shortcut to check if a nested field column isTypeSignature.isNumeric()
, useful when broadly choosing the type of vector selector to be used when dealing with the path
-
getClazz
public Class<?> getClazz()
- Specified by:
getClazz
in interfaceComplexColumn
- Returns:
- Class of objects returned on calls to
ComplexColumn.getRowValue(int)
.
-
getTypeName
public String getTypeName()
- Specified by:
getTypeName
in interfaceComplexColumn
- Returns:
- Typename associated with this column.
-
-