[ 
https://issues.apache.org/jira/browse/FLINK-24399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timo Walther updated FLINK-24399:
---------------------------------
    Description: 
{{DataType}} is the API abstraction for declaring types and always includes the 
{{LogicalType}} as well. In order to ease the handling of this class, we should 
do the following additions:

- {{DynamicTableFactory.Context#getPhysicalRowDataType(): DataType}}
- {{DynamicTableFactory.Context#getPrimaryKeyFields(): int[]}}
- {{DataType#getFieldNames: List<String>}} (empty for atomics)
- {{DataType#getFieldTypes: List<DataType>}} as a synonym for {{getChildren}} 
(empty for atomics)
- {{DataType#getFieldCount: int}} (0 for atomics)
- {{DataType#projectFields(int[][]): DataType}} (like 
{{DataTypeUtils#projectRow}})
- {{DataType#projectFields(int[]): DataType}} (like 
{{DataTypeUtils#projectRow}})
- {{DataType#toInterna()}}
- {{DataTypes#of(LogicalType)}}

This should simplify implementations and avoid needs for internal utilities.

  was:
{{DataType}} is the API abstraction for declaring types and always includes the 
{{LogicalType}} as well. In order to ease the handling of this class, we should 
do the following additions:

- {{DynamicTableFactory.Context#getPhysicalRowDataType(): DataType}}
- {{DynamicTableFactory.Context#getPrimaryKeyFields(): int[]}}
- {{DataType#getFieldNames: List<String>}} (empty for atomics)
- {{DataType#getFieldDataTypes: List<DataType>}} as a synonym for 
{{getChildren}} (empty for atomics)
- {{DataType#getFieldCount: int}} (0 for atomics)
- {{DataType#getProjectedFields(int[][]): DataType}} (like 
{{DataTypeUtils#projectRow}})
- {{DataType#getProjectedFields(int[]): DataType}} (like 
{{DataTypeUtils#projectRow}})

This should simplify implementations and avoid needs for internal utilities.


> Make handling of DataType less verbose
> --------------------------------------
>
>                 Key: FLINK-24399
>                 URL: https://issues.apache.org/jira/browse/FLINK-24399
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table SQL / API
>            Reporter: Timo Walther
>            Assignee: Francesco Guardiani
>            Priority: Major
>
> {{DataType}} is the API abstraction for declaring types and always includes 
> the {{LogicalType}} as well. In order to ease the handling of this class, we 
> should do the following additions:
> - {{DynamicTableFactory.Context#getPhysicalRowDataType(): DataType}}
> - {{DynamicTableFactory.Context#getPrimaryKeyFields(): int[]}}
> - {{DataType#getFieldNames: List<String>}} (empty for atomics)
> - {{DataType#getFieldTypes: List<DataType>}} as a synonym for {{getChildren}} 
> (empty for atomics)
> - {{DataType#getFieldCount: int}} (0 for atomics)
> - {{DataType#projectFields(int[][]): DataType}} (like 
> {{DataTypeUtils#projectRow}})
> - {{DataType#projectFields(int[]): DataType}} (like 
> {{DataTypeUtils#projectRow}})
> - {{DataType#toInterna()}}
> - {{DataTypes#of(LogicalType)}}
> This should simplify implementations and avoid needs for internal utilities.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to