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)