Krutik created FLINK-32899: ------------------------------ Summary: Can not access inner/nested objects in MATCH_RECOGNIZE DFINE clause and in Aggregate function Key: FLINK-32899 URL: https://issues.apache.org/jira/browse/FLINK-32899 Project: Flink Issue Type: Bug Components: Library / CEP Affects Versions: 1.17.1 Environment: Implemented everything in java maven project on a Windows 11 Reporter: Krutik
Note: we are implementing everything in java. example event {code:java} { "config": "conf1", "id": 1, "action": "login", "size": 10, "message": { "action": "login", "size": 10, "event": { "action": "login", "size": 10, "event": { } } }{code} we are tried to run query, it does not works and gives bellow exception {code:java} SELECT * FROM Log MATCH_RECOGNIZE ( PARTITION BY config ORDER BY time_ltz MEASURES A.id AS aID, COUNT(B.id) AS cnt AFTER MATCH SKIP PAST LAST ROW PATTERN (A B+ C) DEFINE A AS A.message.event.action = 'login' B AS B.message.event.action = 'data' AND SUM(B.message.event.size) >= 20" );{code} {code:java} Exception in thread "main" org.apache.flink.table.api.ValidationException: SQL validation failed. From line 11, column 22 to line 11, column 26: Table 'event' not found at org.apache.flink.table.planner.calcite.FlinkPlannerImpl.org$apache$flink$table$planner$calcite$FlinkPlannerImpl$$validate(FlinkPlannerImpl.scala:187) at org.apache.flink.table.planner.calcite.FlinkPlannerImpl.validate(FlinkPlannerImpl.scala:113) at org.apache.flink.table.planner.operations.SqlToOperationConverter.convert(SqlToOperationConverter.java:281) at org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:106) at org.apache.flink.table.api.internal.TableEnvironmentImpl.sqlQuery(TableEnvironmentImpl.java:738) at org.abs.security.StaticRuleEvaluator.main(StaticRuleEvaluator.java:151) Caused by: org.apache.calcite.runtime.CalciteContextException: From line 11, column 22 to line 11, column 26: Table 'event' not found at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505) at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:932) at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:917) at org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5163) at org.apache.calcite.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:344) {code} The problem here is that if I try to run the same query replacing *A.message.event.action* with *A.message.action* without Aggregate function it works with Aggregate function it does not works and if I replace *A.message.event.action* with *A.action* with Aggregate function it works fine. without Aggregate function: * A.action (/) * A.message.action(/) * A.message.event.action (x) with Aggregate function: * A.action (/) * A.message.action (x) * A.message.event.action (x) -- This message was sent by Atlassian Jira (v8.20.10#820010)