Currently, the Table API does not expose a way of creating RAW types without a DataTypeFactory. The reason for that is that RAW types need to be resolved at a later stage. This is similar to user-defined types that need to be resolved from the catalog.
- Introduction of AbstractDataType as the highest type of resolved and unresolved data types
- Introduction of DataTypes.of() for classes and names and DataTypes.RAW(Class) for unresolved types
- Helper classes and methods for constructing unresolved types type-safe
We also need better support in the Blink planner for that.