Class InternalTypeInfo<T>
- java.lang.Object
-
- org.apache.flink.api.common.typeinfo.TypeInformation<T>
-
- org.apache.flink.table.runtime.typeutils.InternalTypeInfo<T>
-
- Type Parameters:
T
- internal data structure
- All Implemented Interfaces:
Serializable
,DataTypeQueryable
@Internal public final class InternalTypeInfo<T> extends TypeInformation<T> implements DataTypeQueryable
Type information that wraps a serializer that originated from aLogicalType
.TypeInformation
is a legacy class for the sole purpose of creating aTypeSerializer
. Instances ofTypeInformation
are not required in the table ecosystem but sometimes enforced by interfaces of other modules (such asTransformation
). Therefore, this class acts as an adapter whenever type information is required.Use
of(LogicalType)
for type information of internal data structures.Note: Instances of this class should only be created for passing it to interfaces that require type information. This class should not be used as a replacement for a
LogicalType
. Information such as the arity of a row type, field types, field names, etc. should be derived from theLogicalType
directly.The original
LogicalType
is stored in every instance (for access during pre-flight phase and planning) but has no effect on equality because only serialization matters during runtime.- See Also:
- Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
canEqual(Object obj)
Returns true if the given object can be equaled with this object.TypeSerializer<T>
createSerializer(SerializerConfig config)
Creates a serializer for the type.boolean
equals(Object o)
int
getArity()
Gets the arity of this type - the number of fields without nesting.DataType
getDataType()
int
getTotalFields()
Gets the number of logical fields in this type.Class<T>
getTypeClass()
Gets the class of the type represented by this type information.int
hashCode()
boolean
isBasicType()
Checks if this type information represents a basic type.boolean
isKeyType()
Checks whether this type can be used as a key.boolean
isTupleType()
Checks if this type information represents a Tuple type.static <T> InternalTypeInfo<T>
of(LogicalType type)
Creates type information for aLogicalType
that is represented by internal data structures.static InternalTypeInfo<RowData>
of(RowType type)
Creates type information for aRowType
represented by internal data structures.static InternalTypeInfo<RowData>
ofFields(LogicalType... fieldTypes)
Creates type information forRowType
represented by internal data structures.static InternalTypeInfo<RowData>
ofFields(LogicalType[] fieldTypes, String[] fieldNames)
Creates type information forRowType
represented by internal data structures.LogicalType
toLogicalType()
String[]
toRowFieldNames()
Deprecated.TypeInformation
should just be a thin wrapper of a serializer.LogicalType[]
toRowFieldTypes()
Deprecated.TypeInformation
should just be a thin wrapper of a serializer.RowDataSerializer
toRowSerializer()
int
toRowSize()
Deprecated.TypeInformation
should just be a thin wrapper of a serializer.RowType
toRowType()
TypeSerializer<T>
toSerializer()
String
toString()
-
Methods inherited from class org.apache.flink.api.common.typeinfo.TypeInformation
getGenericParameters, isSortKeyType, of, of
-
-
-
-
Method Detail
-
of
public static <T> InternalTypeInfo<T> of(LogicalType type)
Creates type information for aLogicalType
that is represented by internal data structures.
-
of
public static InternalTypeInfo<RowData> of(RowType type)
Creates type information for aRowType
represented by internal data structures.
-
ofFields
public static InternalTypeInfo<RowData> ofFields(LogicalType... fieldTypes)
Creates type information forRowType
represented by internal data structures.
-
ofFields
public static InternalTypeInfo<RowData> ofFields(LogicalType[] fieldTypes, String[] fieldNames)
Creates type information forRowType
represented by internal data structures.
-
toLogicalType
public LogicalType toLogicalType()
-
toSerializer
public TypeSerializer<T> toSerializer()
-
toRowType
public RowType toRowType()
-
toRowSerializer
public RowDataSerializer toRowSerializer()
-
toRowFieldTypes
@Deprecated public LogicalType[] toRowFieldTypes()
Deprecated.TypeInformation
should just be a thin wrapper of a serializer. This method only exists for legacy code. It is recommended to use theRowType
instead for logical operations.
-
toRowFieldNames
@Deprecated public String[] toRowFieldNames()
Deprecated.TypeInformation
should just be a thin wrapper of a serializer. This method only exists for legacy code. It is recommended to use theRowType
instead for logical operations.
-
toRowSize
@Deprecated public int toRowSize()
Deprecated.TypeInformation
should just be a thin wrapper of a serializer. This method only exists for legacy code. It is recommended to use theRowType
instead for logical operations.
-
getDataType
public DataType getDataType()
- Specified by:
getDataType
in interfaceDataTypeQueryable
-
isBasicType
public boolean isBasicType()
Description copied from class:TypeInformation
Checks if this type information represents a basic type. Basic types are defined inBasicTypeInfo
and are primitives, their boxing types, Strings, Date, Void, ...- Specified by:
isBasicType
in classTypeInformation<T>
- Returns:
- True, if this type information describes a basic type, false otherwise.
-
isTupleType
public boolean isTupleType()
Description copied from class:TypeInformation
Checks if this type information represents a Tuple type. Tuple types are subclasses of the Java API tuples.- Specified by:
isTupleType
in classTypeInformation<T>
- Returns:
- True, if this type information describes a tuple type, false otherwise.
-
getArity
public int getArity()
Description copied from class:TypeInformation
Gets the arity of this type - the number of fields without nesting.- Specified by:
getArity
in classTypeInformation<T>
- Returns:
- Gets the number of fields in this type without nesting.
-
getTotalFields
public int getTotalFields()
Description copied from class:TypeInformation
Gets the number of logical fields in this type. This includes its nested and transitively nested fields, in the case of composite types. In the example above, the OuterType type has three fields in total.The total number of fields must be at least 1.
- Specified by:
getTotalFields
in classTypeInformation<T>
- Returns:
- The number of fields in this type, including its sub-fields (for composite types)
-
getTypeClass
public Class<T> getTypeClass()
Description copied from class:TypeInformation
Gets the class of the type represented by this type information.- Specified by:
getTypeClass
in classTypeInformation<T>
- Returns:
- The class of the type represented by this type information.
-
isKeyType
public boolean isKeyType()
Description copied from class:TypeInformation
Checks whether this type can be used as a key. As a bare minimum, types have to be hashable and comparable to be keys.- Specified by:
isKeyType
in classTypeInformation<T>
- Returns:
- True, if the type can be used as a key, false otherwise.
-
createSerializer
public TypeSerializer<T> createSerializer(SerializerConfig config)
Description copied from class:TypeInformation
Creates a serializer for the type. The serializer may use the ExecutionConfig for parameterization.- Specified by:
createSerializer
in classTypeInformation<T>
- Parameters:
config
- The config used to parameterize the serializer.- Returns:
- A serializer for this type.
-
toString
public String toString()
- Specified by:
toString
in classTypeInformation<T>
-
equals
public boolean equals(Object o)
- Specified by:
equals
in classTypeInformation<T>
-
hashCode
public int hashCode()
- Specified by:
hashCode
in classTypeInformation<T>
-
canEqual
public boolean canEqual(Object obj)
Description copied from class:TypeInformation
Returns true if the given object can be equaled with this object. If not, it returns false.- Specified by:
canEqual
in classTypeInformation<T>
- Parameters:
obj
- Object which wants to take part in the equality relation- Returns:
- true if obj can be equaled with this, otherwise false
-
-