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)