[ 
https://issues.apache.org/jira/browse/FLINK-33200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17774153#comment-17774153
 ] 

Andriy Onyshchuk commented on FLINK-33200:
------------------------------------------

Hello, [~xuyangzhong]. Thanks for your analysis!

Can I get some guidance regarding Row vs RowData, String vs StringData, 
Timestamp/LocalDateTime vs TimestampData, T[] vs ArrayData, etc

I think I saw some comments saying that `*Data` struct types are the 
perspective API that is going to be used going forward. May be I misinterpret 
it. How would you define a guidline?

Thank you

> ItemAt Expression validation fail in Table API due to type mismatch
> -------------------------------------------------------------------
>
>                 Key: FLINK-33200
>                 URL: https://issues.apache.org/jira/browse/FLINK-33200
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / API
>    Affects Versions: 1.18.0, 1.17.1
>            Reporter: Zhenqiu Huang
>            Priority: Minor
>         Attachments: IssueDemo.java
>
>
> The table schema is defined as below:
> public static final DataType DATA_TYPE = DataTypes.ROW(
>             DataTypes.FIELD("id", DataTypes.STRING()),
>             DataTypes.FIELD("events", 
> DataTypes.ARRAY(DataTypes.MAP(DataTypes.STRING(), DataTypes.STRING())))
>         );
> public static final Schema SCHEMA = 
> Schema.newBuilder().fromRowDataType(DATA_TYPE).build();
> inTable.select(Expressions.$("events").at(1).at("eventType").as("firstEventType")
> The validation fail as "eventType" is inferred as 
> BasicTypeInfo.STRING_TYPE_INFO, the table key internally is a 
> StringDataTypeInfo. The validation fail at 
> case mti: MapTypeInfo[_, _] =>
>         if (key.resultType == mti.getKeyTypeInfo) {
>           ValidationSuccess
>         } else {
>           ValidationFailure(
>             s"Map entry access needs a valid key of type " +
>               s"'${mti.getKeyTypeInfo}', found '${key.resultType}'.")
>         }



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to