public class ColumnCapabilitiesImpl extends Object implements ColumnCapabilities
ColumnCapabilities.Capable, ColumnCapabilities.CoercionLogic| Constructor and Description |
|---|
ColumnCapabilitiesImpl() |
| Modifier and Type | Method and Description |
|---|---|
ColumnCapabilities.Capable |
areDictionaryValuesSorted()
If the column is dictionary encoded, are those values sorted? Useful to know for optimizations that can defer
looking up values and allowing sorting with the dictionary ids directly
|
ColumnCapabilities.Capable |
areDictionaryValuesUnique()
If the column is dictionary encoded, is there a 1:1 mapping of dictionary ids to values? If this is true, it
unlocks optimizations such as allowing for things like grouping directly on dictionary ids and deferred value
lookup
|
static ColumnCapabilitiesImpl |
copyOf(ColumnCapabilities other) |
static ColumnCapabilitiesImpl |
createDefault()
Creates a
ColumnCapabilitiesImpl where all ColumnCapabilities.Capable that default to unknown
instead are coerced to true or false |
static ColumnCapabilitiesImpl |
createSimpleArrayColumnCapabilities(TypeSignature<ValueType> valueType)
|
static ColumnCapabilitiesImpl |
createSimpleNumericColumnCapabilities(TypeSignature<ValueType> valueType)
Create a no frills, simple column with
ValueType set and everything else false |
static ColumnCapabilitiesImpl |
createSimpleSingleValueStringColumnCapabilities()
Simple, single valued, non dictionary encoded string without bitmap index or anything fancy
|
String |
getComplexTypeName() |
TypeSignature<ValueType> |
getElementType() |
ValueType |
getType()
Column type, good to know so caller can know what to expect and which optimal selector to use
|
boolean |
hasBitmapIndexes()
Does the column have an inverted index bitmap for each value? If so, these may be employed to 'pre-filter' the
column by examining if the values match the filter and intersecting the bitmaps, to avoid having to scan and
evaluate if every row matches the filter
|
ColumnCapabilities.Capable |
hasMultipleValues()
String columns are sneaky, and might have multiple values, this is to allow callers to know and appropriately
prepare themselves
|
ColumnCapabilities.Capable |
hasNulls()
Does this column contain null values? If so, callers, especially for primitive numeric columns, will need to check
for null value rows and act accordingly
|
boolean |
hasSpatialIndexes()
Does the column have spatial indexes available to allow use with spatial filtering?
|
ColumnCapabilities.Capable |
isDictionaryEncoded()
Is the column dictionary encoded? If so, a DimensionDictionarySelector may be used instead of using a value
selector, allowing algorithms to operate on primitive integer dictionary ids rather than the looked up dictionary
values
|
boolean |
isFilterable()
All Druid primitive columns support filtering, maybe with or without indexes, but by default complex columns
do not support direct filtering, unless provided by through a custom implementation.
|
ColumnCapabilitiesImpl |
setDictionaryEncoded(boolean dictionaryEncoded) |
ColumnCapabilitiesImpl |
setDictionaryValuesSorted(boolean dictionaryValuesSorted) |
ColumnCapabilitiesImpl |
setDictionaryValuesUnique(boolean dictionaryValuesUnique) |
ColumnCapabilitiesImpl |
setFilterable(boolean filterable) |
ColumnCapabilitiesImpl |
setHasBitmapIndexes(boolean hasInvertedIndexes) |
ColumnCapabilitiesImpl |
setHasMultipleValues(boolean hasMultipleValues) |
ColumnCapabilitiesImpl |
setHasNulls(boolean hasNulls) |
ColumnCapabilitiesImpl |
setHasNulls(ColumnCapabilities.Capable hasNulls) |
ColumnCapabilitiesImpl |
setHasSpatialIndexes(boolean hasSpatialIndexes) |
ColumnCapabilitiesImpl |
setType(ColumnType type) |
ColumnCapabilitiesImpl |
setType(TypeSignature<ValueType> type) |
static ColumnCapabilitiesImpl |
snapshot(ColumnCapabilities capabilities,
ColumnCapabilities.CoercionLogic coerce)
Copy a
ColumnCapabilities and coerce all ColumnCapabilities.Capable.UNKNOWN to
ColumnCapabilities.Capable.TRUE or ColumnCapabilities.Capable.FALSE as specified by
ColumnCapabilities.CoercionLogic |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetStrategy, toColumnTypeanyOf, asTypeString, getNullableStrategy, is, isArray, isNumeric, isPrimitivepublic static ColumnCapabilitiesImpl copyOf(@Nullable ColumnCapabilities other)
@Nullable public static ColumnCapabilitiesImpl snapshot(@Nullable ColumnCapabilities capabilities, ColumnCapabilities.CoercionLogic coerce)
ColumnCapabilities and coerce all ColumnCapabilities.Capable.UNKNOWN to
ColumnCapabilities.Capable.TRUE or ColumnCapabilities.Capable.FALSE as specified by
ColumnCapabilities.CoercionLogicpublic static ColumnCapabilitiesImpl createDefault()
ColumnCapabilitiesImpl where all ColumnCapabilities.Capable that default to unknown
instead are coerced to true or falsepublic static ColumnCapabilitiesImpl createSimpleNumericColumnCapabilities(TypeSignature<ValueType> valueType)
ValueType set and everything else falsepublic static ColumnCapabilitiesImpl createSimpleSingleValueStringColumnCapabilities()
public static ColumnCapabilitiesImpl createSimpleArrayColumnCapabilities(TypeSignature<ValueType> valueType)
@Nullable public ValueType getType()
ColumnCapabilitiesgetType in interface ColumnCapabilitiesgetType in interface TypeSignature<ValueType>@Nullable public String getComplexTypeName()
getComplexTypeName in interface ColumnCapabilitiesgetComplexTypeName in interface TypeSignature<ValueType>@Nullable public TypeSignature<ValueType> getElementType()
getElementType in interface ColumnCapabilitiesgetElementType in interface TypeSignature<ValueType>public ColumnCapabilitiesImpl setType(ColumnType type)
public ColumnCapabilitiesImpl setType(TypeSignature<ValueType> type)
public ColumnCapabilities.Capable isDictionaryEncoded()
ColumnCapabilitiesisDictionaryEncoded in interface ColumnCapabilitiespublic ColumnCapabilitiesImpl setDictionaryEncoded(boolean dictionaryEncoded)
public ColumnCapabilities.Capable areDictionaryValuesSorted()
ColumnCapabilitiesareDictionaryValuesSorted in interface ColumnCapabilitiespublic ColumnCapabilitiesImpl setDictionaryValuesSorted(boolean dictionaryValuesSorted)
public ColumnCapabilities.Capable areDictionaryValuesUnique()
ColumnCapabilitiesareDictionaryValuesUnique in interface ColumnCapabilitiespublic ColumnCapabilitiesImpl setDictionaryValuesUnique(boolean dictionaryValuesUnique)
public boolean hasBitmapIndexes()
ColumnCapabilitieshasBitmapIndexes in interface ColumnCapabilitiespublic ColumnCapabilitiesImpl setHasBitmapIndexes(boolean hasInvertedIndexes)
public boolean hasSpatialIndexes()
ColumnCapabilitieshasSpatialIndexes in interface ColumnCapabilitiespublic ColumnCapabilitiesImpl setHasSpatialIndexes(boolean hasSpatialIndexes)
public ColumnCapabilities.Capable hasMultipleValues()
ColumnCapabilitieshasMultipleValues in interface ColumnCapabilitiespublic ColumnCapabilitiesImpl setHasMultipleValues(boolean hasMultipleValues)
public ColumnCapabilities.Capable hasNulls()
ColumnCapabilitieshasNulls in interface ColumnCapabilitiespublic ColumnCapabilitiesImpl setHasNulls(boolean hasNulls)
public ColumnCapabilitiesImpl setHasNulls(ColumnCapabilities.Capable hasNulls)
public boolean isFilterable()
ColumnCapabilitiesisFilterable in interface ColumnCapabilitiespublic ColumnCapabilitiesImpl setFilterable(boolean filterable)
Copyright © 2011–2022 The Apache Software Foundation. All rights reserved.