[ https://issues.apache.org/jira/browse/FLINK-17222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17085825#comment-17085825 ]
Jark Wu commented on FLINK-17222: --------------------------------- Big +1 > 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 > Priority: Minor > > 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)