Class DataType
- All Implemented Interfaces:
Serializable,AbstractDataType<DataType>
- Direct Known Subclasses:
AtomicDataType,CollectionDataType,FieldsDataType,KeyValueDataType
The DataType class has two responsibilities: declaring a logical type and giving hints
about the physical representation of data to the planner. While the logical type is mandatory,
hints are optional but useful at the edges to other APIs.
The logical type is independent of any physical representation and is close to the "data type"
terminology of the SQL standard. See LogicalType and
its subclasses for more information about available logical types and their properties.
Physical hints are required at the edges of the table ecosystem. Hints indicate the data
format that an implementation expects. For example, a data source could express that it produces
values for logical timestamps using a Timestamp class instead of using LocalDateTime. With this information, the runtime is able to convert the produced
class into its internal data format. In return, a data sink can declare the data format it
consumes from the runtime.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionabstract <R> Raccept(DataTypeVisitor<R> visitor) booleanReturns the children of this data type, if any.Class<?>Returns the corresponding conversion class for representing values.static intgetFieldCount(DataType dataType) Returns the count of the first-level fields for the providedDataType.getFieldDataTypes(DataType dataType) Returns the first-level field data types for the providedDataType.getFieldNames(DataType dataType) Returns the first-level field names for the providedDataType.static List<DataTypes.Field>Returns an ordered list of fields starting from the providedDataType.Returns the corresponding logical type.inthashCode()Creates a copy of thisDataTypeinstance with the internal data type conversion classes.toString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.flink.table.types.AbstractDataType
bridgedTo, notNull, nullable
-
Field Details
-
logicalType
-
conversionClass
-
-
Method Details
-
getLogicalType
Returns the corresponding logical type.- Returns:
- a parameterized instance of
LogicalType
-
getConversionClass
Returns the corresponding conversion class for representing values. If no conversion class was defined manually, the default conversion defined by the logical type is used.- Returns:
- the expected conversion class
- See Also:
-
getChildren
Returns the children of this data type, if any. Returns an empty list if this data type is atomic.- Returns:
- the children data types
-
accept
-
toInternal
Creates a copy of thisDataTypeinstance with the internal data type conversion classes. This method performs the transformation deeply through its children. For example, for aDataTypeinstance representing a row type with a timestamp field, this method returns a newDataType, with the conversion class toRowDataand the children data type with the conversion class toTimestampData.For a comprehensive list of internal data types, check
RowData.- See Also:
-
toString
-
equals
-
hashCode
public int hashCode() -
getFieldNames
-
getFieldDataTypes
-
getFieldCount
-
getFields
-