[
https://issues.apache.org/jira/browse/FLINK-17222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timo Walther closed FLINK-17222.
--------------------------------
Fix Version/s: 1.11.0
Resolution: Fixed
Fixed in 1.11.0: 96b86fc296ae3cd61c585534682b1664d32f143c
> Improve FieldsDataType
> ----------------------
>
> Key: FLINK-17222
> URL: https://issues.apache.org/jira/browse/FLINK-17222
> Project: Flink
> Issue Type: Sub-task
> Components: Table SQL / API
> Reporter: Dawid Wysakowicz
> Assignee: Timo Walther
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.11.0
>
>
> The problem with {{FieldsDataType}} is that the method {{getFieldDataTypes}}
> does not keep the order of the fields stored in the logical type. Therefore
> at couple of locations we have to first iterate over the names in logical
> type and then get the DataTypes.
> {code}
> final RowType rowType = (RowType) fieldsDataType.getLogicalType();
> final String[] fieldNames = rowType.getFields()
> .stream()
> .map(RowType.RowField::getName)
> .toArray(String[]::new);
> final TypeInformation<?>[] fieldTypes = Stream.of(fieldNames)
> .map(name -> fieldsDataType.getFieldDataTypes().get(name))
> .map(LegacyTypeInfoDataTypeConverter::toLegacyTypeInfo)
> .toArray(TypeInformation[]::new);
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)