Class DataTypeUtils
DataTypes.-
Method Summary
Modifier and TypeMethodDescriptionstatic DataTypeappendRowFields(DataType dataType, List<DataTypes.Field> fields) Appends the given list of fields to an existing row data type.static DataTypeReturns a PROCTIME data type.static ResolvedSchemaexpandCompositeTypeToSchema(DataType dataType) Expands a compositeDataTypeto a correspondingResolvedSchema.flattenToDataTypes(DataType dataType) Returns the data types of the flat representation in the first level of the given data type.flattenToNames(DataType dataType) Returns the names of the flat representation of the given data type.flattenToNames(DataType dataType, List<String> existingNames) Retrieves a nested field from a composite type at given position.Retrieves a nested field from a composite type with given name.static booleanisInternal(DataType dataType) Checks whether a given data type is an internal data structure.static booleanisInternal(DataType dataType, boolean autobox) Checks whether a given data type is an internal data structure.static DataTypeprojectRow(DataType dataType, int[] indexPaths) Deprecated.static DataTypeprojectRow(DataType dataType, int[][] indexPaths) Deprecated.Use theProjectiontypestatic DataTyperemoveTimeAttribute(DataType dataType) Removes time attributes from theDataType.static DataTypereplaceLogicalType(DataType dataType, LogicalType replacement) Replaces theLogicalTypeof aDataType, i.e., it keeps the bridging class.static DataTypestripRowPrefix(DataType dataType, String prefix) Removes a string prefix from the fields of the given row data type.static DataTypetoInternalDataType(DataType dataType) static DataTypetoInternalDataType(LogicalType logicalType) Creates aDataTypefrom the givenLogicalTypewith internal data structures.static DataTypetransform(DataTypeFactory factory, DataType typeToTransform, TypeTransformation... transformations) Transforms the given data type to a different data type using the given transformations.static DataTypetransform(DataType typeToTransform, TypeTransformation... transformations) Transforms the given data type to a different data type using the given transformations.static voidvalidateInputDataType(DataType dataType) TheDataTypeclass can only partially verify the conversion class.static voidvalidateOutputDataType(DataType dataType) TheDataTypeclass can only partially verify the conversion class.
-
Method Details
-
projectRow
Deprecated.Use theProjectiontype- See Also:
-
projectRow
Deprecated.Use theProjectiontype- See Also:
-
stripRowPrefix
Removes a string prefix from the fields of the given row data type. -
appendRowFields
Appends the given list of fields to an existing row data type. -
toInternalDataType
Creates aDataTypefrom the givenLogicalTypewith internal data structures. -
toInternalDataType
-
isInternal
Checks whether a given data type is an internal data structure. -
isInternal
Checks whether a given data type is an internal data structure. -
replaceLogicalType
Replaces theLogicalTypeof aDataType, i.e., it keeps the bridging class. -
removeTimeAttribute
Removes time attributes from theDataType. As everywhere else in the code base, this method does not support nested time attributes for now. -
transform
Transforms the given data type to a different data type using the given transformations. -
transform
public static DataType transform(@Nullable DataTypeFactory factory, DataType typeToTransform, TypeTransformation... transformations) Transforms the given data type to a different data type using the given transformations.The transformations will be called in the given order. In case of constructed or composite types, a transformation will be applied transitively to children first.
Both the
DataType.getLogicalType()andDataType.getConversionClass()can be transformed.- Parameters:
factory-DataTypeFactoryif availabletypeToTransform- data type to be transformed.transformations- the transformations to transform data type to another type.- Returns:
- the new data type
-
expandCompositeTypeToSchema
Expands a compositeDataTypeto a correspondingResolvedSchema. Useful for flattening a column or mapping a physical to logical type of a table sourceThrows an exception for a non composite type. You can use
LogicalTypeChecks.isCompositeType(LogicalType)to check that.It does not expand an atomic type on purpose, because that operation depends on the context. E.g. in case of a
FLATTENfunction such operation is not allowed, whereas when mapping a physical type to logical the field name should be derived from the logical schema.- Parameters:
dataType- Data type to expand. Must be a composite type.- Returns:
- A corresponding table schema.
-
getField
Retrieves a nested field from a composite type at given position.Throws an exception for a non composite type. You can use
LogicalTypeChecks.isCompositeType(LogicalType)to check that.- Parameters:
compositeType- Data type to expand. Must be a composite type.index- Index of the field to retrieve.- Returns:
- The field at the given position.
-
getField
Retrieves a nested field from a composite type with given name.Throws an exception for a non composite type. You can use
LogicalTypeChecks.isCompositeType(LogicalType)to check that.- Parameters:
compositeType- Data type to expand. Must be a composite type.name- Name of the field to retrieve.- Returns:
- The field with the given name.
-
flattenToDataTypes
Returns the data types of the flat representation in the first level of the given data type. -
flattenToNames
Returns the names of the flat representation of the given data type. In case ofStructuredType, the list also includes the super type fields. -
flattenToNames
- See Also:
-
validateInputDataType
TheDataTypeclass can only partially verify the conversion class. This method can perform the final check when we know if the data type should be used for input. -
validateOutputDataType
TheDataTypeclass can only partially verify the conversion class. This method can perform the final check when we know if the data type should be used for output. -
createProctimeDataType
Returns a PROCTIME data type.
-
Projectiontype