Zhenqiu Huang created FLINK-33200:
-------------------------------------

             Summary: 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
            Reporter: Zhenqiu Huang
             Fix For: 1.8.4


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