Package org.apache.druid.query.dimension
Class DefaultDimensionSpec
- java.lang.Object
-
- org.apache.druid.query.dimension.DefaultDimensionSpec
-
- All Implemented Interfaces:
Cacheable
,DimensionSpec
- Direct Known Subclasses:
LegacyDimensionSpec
public class DefaultDimensionSpec extends Object implements DimensionSpec
-
-
Constructor Summary
Constructors Constructor Description DefaultDimensionSpec(String dimension, String outputName)
DefaultDimensionSpec(String dimension, String outputName, ColumnType outputType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canVectorize()
Does this DimensionSpec have workingDimensionSpec.decorate(SingleValueDimensionVectorSelector)
andDimensionSpec.decorate(MultiValueDimensionVectorSelector)
methods?DimensionSelector
decorate(DimensionSelector selector)
Decorate aDimensionSelector
, allowing custom transformation of underlying behavior (e.g.MultiValueDimensionVectorSelector
decorate(MultiValueDimensionVectorSelector selector)
SingleValueDimensionVectorSelector
decorate(SingleValueDimensionVectorSelector selector)
Vectorized analog ofDimensionSpec.decorate(DimensionSelector)
forSingleValueDimensionVectorSelector
, most likely produced withVectorColumnSelectorFactory.makeSingleValueDimensionSelector(DimensionSpec)
Decoration allows aDimensionSpec
to customize the behavior of the underlying selector, for example transforming or filtering values.boolean
equals(Object o)
byte[]
getCacheKey()
Get a byte array used as a cache key.String
getDimension()
ExtractionFn
getExtractionFn()
String
getOutputName()
ColumnType
getOutputType()
int
hashCode()
boolean
mustDecorate()
Does this DimensionSpec require that decorate() be called to produce correct results?static DefaultDimensionSpec
of(String dimensionName)
static DefaultDimensionSpec
of(String dimensionName, ColumnType columnType)
boolean
preservesOrdering()
If theDimensionSpec.decorate(org.apache.druid.segment.DimensionSelector)
methods alter the underlying behavior of the dimension selector, does this alteration preserve the original ordering?String
toString()
DimensionSpec
withDimension(String newDimension)
Returns a copy of this DimensionSpec with the underlying dimension (the value ofDimensionSpec.getDimension()
) replaced by "newDimension".
-
-
-
Method Detail
-
of
public static DefaultDimensionSpec of(String dimensionName)
-
of
public static DefaultDimensionSpec of(String dimensionName, ColumnType columnType)
-
getDimension
public String getDimension()
- Specified by:
getDimension
in interfaceDimensionSpec
-
getOutputName
public String getOutputName()
- Specified by:
getOutputName
in interfaceDimensionSpec
-
getOutputType
public ColumnType getOutputType()
- Specified by:
getOutputType
in interfaceDimensionSpec
-
getExtractionFn
public ExtractionFn getExtractionFn()
- Specified by:
getExtractionFn
in interfaceDimensionSpec
-
decorate
public DimensionSelector decorate(DimensionSelector selector)
Description copied from interface:DimensionSpec
Decorate aDimensionSelector
, allowing custom transformation of underlying behavior (e.g. performing extraction functions in the case ofExtractionDimensionSpec
, regex filtering in the case ofRegexFilteredDimensionSpec
, and so on).- Specified by:
decorate
in interfaceDimensionSpec
-
decorate
public SingleValueDimensionVectorSelector decorate(SingleValueDimensionVectorSelector selector)
Description copied from interface:DimensionSpec
Vectorized analog ofDimensionSpec.decorate(DimensionSelector)
forSingleValueDimensionVectorSelector
, most likely produced withVectorColumnSelectorFactory.makeSingleValueDimensionSelector(DimensionSpec)
Decoration allows aDimensionSpec
to customize the behavior of the underlying selector, for example transforming or filtering values.- Specified by:
decorate
in interfaceDimensionSpec
-
decorate
public MultiValueDimensionVectorSelector decorate(MultiValueDimensionVectorSelector selector)
Description copied from interface:DimensionSpec
- Specified by:
decorate
in interfaceDimensionSpec
-
canVectorize
public boolean canVectorize()
Description copied from interface:DimensionSpec
Does this DimensionSpec have workingDimensionSpec.decorate(SingleValueDimensionVectorSelector)
andDimensionSpec.decorate(MultiValueDimensionVectorSelector)
methods?- Specified by:
canVectorize
in interfaceDimensionSpec
-
mustDecorate
public boolean mustDecorate()
Description copied from interface:DimensionSpec
Does this DimensionSpec require that decorate() be called to produce correct results?- Specified by:
mustDecorate
in interfaceDimensionSpec
-
getCacheKey
public byte[] getCacheKey()
Description copied from interface:Cacheable
Get a byte array used as a cache key.- Specified by:
getCacheKey
in interfaceCacheable
- Returns:
- a cache key
-
preservesOrdering
public boolean preservesOrdering()
Description copied from interface:DimensionSpec
If theDimensionSpec.decorate(org.apache.druid.segment.DimensionSelector)
methods alter the underlying behavior of the dimension selector, does this alteration preserve the original ordering?- Specified by:
preservesOrdering
in interfaceDimensionSpec
-
withDimension
public DimensionSpec withDimension(String newDimension)
Description copied from interface:DimensionSpec
Returns a copy of this DimensionSpec with the underlying dimension (the value ofDimensionSpec.getDimension()
) replaced by "newDimension".- Specified by:
withDimension
in interfaceDimensionSpec
-
-