Package org.apache.pinot.spi.data
Class FieldSpec
- java.lang.Object
-
- org.apache.pinot.spi.data.FieldSpec
-
- All Implemented Interfaces:
Serializable,Comparable<FieldSpec>
- Direct Known Subclasses:
ComplexFieldSpec,DateTimeFieldSpec,DimensionFieldSpec,MetricFieldSpec,TimeFieldSpec
public abstract class FieldSpec extends Object implements Comparable<FieldSpec>, Serializable
TheFieldSpecclass contains all specs related to any field (column) inSchema.There are 3 types of
FieldSpec:DimensionFieldSpec,MetricFieldSpec,TimeFieldSpecSpecs stored are as followings:
-
Name: name of the field.-
DataType: type of the data stored (e.g. INTEGER, LONG, FLOAT, DOUBLE, STRING).-
IsSingleValueField: single-value or multi-value field.-
DefaultNullValue: when no value found for this field, use this value. Stored in string format.-
VirtualColumnProvider: the virtual column provider to use for this field.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFieldSpec.DataTypeTheDataTypeenum is used to demonstrate the data type of a field.static classFieldSpec.FieldTypeTheFieldTypeenum is used to demonstrate the real world business logic for a column.
-
Field Summary
-
Constructor Summary
Constructors Constructor Description FieldSpec()FieldSpec(String name, FieldSpec.DataType dataType, boolean isSingleValueField)FieldSpec(String name, FieldSpec.DataType dataType, boolean isSingleValueField, int maxLength, Object defaultNullValue)FieldSpec(String name, FieldSpec.DataType dataType, boolean isSingleValueField, Object defaultNullValue)
-
Method Summary
Modifier and Type Method Description protected voidappendDefaultNullValue(com.fasterxml.jackson.databind.node.ObjectNode jsonNode)protected voidappendTransformFunction(com.fasterxml.jackson.databind.node.ObjectNode jsonNode)intcompareTo(FieldSpec otherSpec)booleanequals(Object o)FieldSpec.DataTypegetDataType()ObjectgetDefaultNullValue()static ObjectgetDefaultNullValue(FieldSpec.FieldType fieldType, FieldSpec.DataType dataType, String stringDefaultNullValue)StringgetDefaultNullValueString()abstract FieldSpec.FieldTypegetFieldType()intgetMaxLength()StringgetName()protected static StringgetStringValue(Object value)Helper method to return the String value for the given object.StringgetTransformFunction()Deprecated.StringgetVirtualColumnProvider()inthashCode()booleanisBackwardCompatibleWith(FieldSpec oldFieldSpec)Return true if it is backward compatible with the old FieldSpec.booleanisSingleValueField()booleanisVirtualColumn()Returns whether the column is virtual.voidsetDataType(FieldSpec.DataType dataType)voidsetDefaultNullValue(Object defaultNullValue)voidsetMaxLength(int maxLength)voidsetName(String name)voidsetSingleValueField(boolean isSingleValueField)voidsetTransformFunction(String transformFunction)Deprecated.voidsetVirtualColumnProvider(String virtualColumnProvider)com.fasterxml.jackson.databind.node.ObjectNodetoJsonObject()Returns theObjectNoderepresenting the field spec.
-
-
-
Field Detail
-
DEFAULT_MAX_LENGTH
public static final int DEFAULT_MAX_LENGTH
- See Also:
- Constant Field Values
-
DEFAULT_DIMENSION_NULL_VALUE_OF_INT
public static final Integer DEFAULT_DIMENSION_NULL_VALUE_OF_INT
-
DEFAULT_DIMENSION_NULL_VALUE_OF_LONG
public static final Long DEFAULT_DIMENSION_NULL_VALUE_OF_LONG
-
DEFAULT_DIMENSION_NULL_VALUE_OF_FLOAT
public static final Float DEFAULT_DIMENSION_NULL_VALUE_OF_FLOAT
-
DEFAULT_DIMENSION_NULL_VALUE_OF_DOUBLE
public static final Double DEFAULT_DIMENSION_NULL_VALUE_OF_DOUBLE
-
DEFAULT_DIMENSION_NULL_VALUE_OF_BOOLEAN
public static final Integer DEFAULT_DIMENSION_NULL_VALUE_OF_BOOLEAN
-
DEFAULT_DIMENSION_NULL_VALUE_OF_TIMESTAMP
public static final Long DEFAULT_DIMENSION_NULL_VALUE_OF_TIMESTAMP
-
DEFAULT_DIMENSION_NULL_VALUE_OF_STRING
public static final String DEFAULT_DIMENSION_NULL_VALUE_OF_STRING
- See Also:
- Constant Field Values
-
DEFAULT_DIMENSION_NULL_VALUE_OF_JSON
public static final String DEFAULT_DIMENSION_NULL_VALUE_OF_JSON
- See Also:
- Constant Field Values
-
DEFAULT_DIMENSION_NULL_VALUE_OF_BYTES
public static final byte[] DEFAULT_DIMENSION_NULL_VALUE_OF_BYTES
-
DEFAULT_DIMENSION_NULL_VALUE_OF_BIG_DECIMAL
public static final BigDecimal DEFAULT_DIMENSION_NULL_VALUE_OF_BIG_DECIMAL
-
DEFAULT_METRIC_NULL_VALUE_OF_INT
public static final Integer DEFAULT_METRIC_NULL_VALUE_OF_INT
-
DEFAULT_METRIC_NULL_VALUE_OF_LONG
public static final Long DEFAULT_METRIC_NULL_VALUE_OF_LONG
-
DEFAULT_METRIC_NULL_VALUE_OF_FLOAT
public static final Float DEFAULT_METRIC_NULL_VALUE_OF_FLOAT
-
DEFAULT_METRIC_NULL_VALUE_OF_DOUBLE
public static final Double DEFAULT_METRIC_NULL_VALUE_OF_DOUBLE
-
DEFAULT_METRIC_NULL_VALUE_OF_BIG_DECIMAL
public static final BigDecimal DEFAULT_METRIC_NULL_VALUE_OF_BIG_DECIMAL
-
DEFAULT_METRIC_NULL_VALUE_OF_STRING
public static final String DEFAULT_METRIC_NULL_VALUE_OF_STRING
- See Also:
- Constant Field Values
-
DEFAULT_METRIC_NULL_VALUE_OF_BYTES
public static final byte[] DEFAULT_METRIC_NULL_VALUE_OF_BYTES
-
_name
protected String _name
-
_dataType
protected FieldSpec.DataType _dataType
-
_isSingleValueField
protected boolean _isSingleValueField
-
_defaultNullValue
protected Object _defaultNullValue
-
_transformFunction
@Deprecated protected String _transformFunction
Deprecated.
-
_virtualColumnProvider
protected String _virtualColumnProvider
-
-
Constructor Detail
-
FieldSpec
public FieldSpec()
-
FieldSpec
public FieldSpec(String name, FieldSpec.DataType dataType, boolean isSingleValueField)
-
FieldSpec
public FieldSpec(String name, FieldSpec.DataType dataType, boolean isSingleValueField, @Nullable Object defaultNullValue)
-
FieldSpec
public FieldSpec(String name, FieldSpec.DataType dataType, boolean isSingleValueField, int maxLength, @Nullable Object defaultNullValue)
-
-
Method Detail
-
getFieldType
public abstract FieldSpec.FieldType getFieldType()
-
getName
public String getName()
-
setName
public void setName(String name)
-
getDataType
public FieldSpec.DataType getDataType()
-
setDataType
public void setDataType(FieldSpec.DataType dataType)
-
isSingleValueField
public boolean isSingleValueField()
-
setSingleValueField
public void setSingleValueField(boolean isSingleValueField)
-
getMaxLength
public int getMaxLength()
-
setMaxLength
public void setMaxLength(int maxLength)
-
getVirtualColumnProvider
public String getVirtualColumnProvider()
-
setVirtualColumnProvider
public void setVirtualColumnProvider(String virtualColumnProvider)
-
isVirtualColumn
public boolean isVirtualColumn()
Returns whether the column is virtual. Virtual columns are constructed while loading the segment, thus do not exist in the record, nor should be persisted to the disk.Identify a column as virtual if the virtual column provider is configured.
-
getDefaultNullValue
public Object getDefaultNullValue()
-
getDefaultNullValueString
public String getDefaultNullValueString()
-
getStringValue
protected static String getStringValue(Object value)
Helper method to return the String value for the given object. This is required as not all data types have a toString() (eg byte[]).- Parameters:
value- Value for which String value needs to be returned- Returns:
- String value for the object.
-
setDefaultNullValue
public void setDefaultNullValue(@Nullable Object defaultNullValue)
-
getDefaultNullValue
public static Object getDefaultNullValue(FieldSpec.FieldType fieldType, FieldSpec.DataType dataType, @Nullable String stringDefaultNullValue)
-
getTransformFunction
@Deprecated public String getTransformFunction()
Deprecated.Transform function if defined else null. Deprecated. Use TableConfig -> IngestionConfig -> TransformConfigs
-
setTransformFunction
@Deprecated public void setTransformFunction(@Nullable String transformFunction)
Deprecated.Deprecated. Use TableConfig -> IngestionConfig -> TransformConfigs
-
toJsonObject
public com.fasterxml.jackson.databind.node.ObjectNode toJsonObject()
Returns theObjectNoderepresenting the field spec.Only contains fields with non-default value.
NOTE: here we use
ObjectNodeto preserve the insertion order.
-
appendDefaultNullValue
protected void appendDefaultNullValue(com.fasterxml.jackson.databind.node.ObjectNode jsonNode)
-
appendTransformFunction
protected void appendTransformFunction(com.fasterxml.jackson.databind.node.ObjectNode jsonNode)
-
compareTo
public int compareTo(FieldSpec otherSpec)
- Specified by:
compareToin interfaceComparable<FieldSpec>
-
isBackwardCompatibleWith
public boolean isBackwardCompatibleWith(FieldSpec oldFieldSpec)
Return true if it is backward compatible with the old FieldSpec. Backward compatibility requires all other fields except DefaultNullValue and Max Length should be retained.- Parameters:
oldFieldSpec-- Returns:
-
-