[ https://issues.apache.org/jira/browse/FLINK-8255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16466384#comment-16466384 ]
ASF GitHub Bot commented on FLINK-8255: --------------------------------------- Github user fhueske commented on a diff in the pull request: https://github.com/apache/flink/pull/5961#discussion_r186484649 --- Diff: flink-java/src/test/java/org/apache/flink/api/java/operator/MaxByOperatorTest.java --- @@ -230,4 +235,43 @@ public String toString() { } } + /** + * Validates that no ClassCastException happens + * should not fail e.g. like in FLINK-8255. + */ + @Test + public void testMaxMinByRowTypeInfoKeyFieldsDataset() { + + final ExecutionEnvironment env = ExecutionEnvironment + .getExecutionEnvironment(); + TypeInformation[] types = new TypeInformation[] {Types.INT, Types.INT}; + + String[] fieldNames = new String[]{"id", "value"}; + RowTypeInfo rowTypeInfo = new RowTypeInfo(types, fieldNames); + DataSet tupleDs = env + .fromCollection(Collections.singleton(new Row(2)), rowTypeInfo); + + tupleDs.maxBy(0); + tupleDs.minBy(0); + } + + /** + * Validates that no ClassCastException happens + * should not fail e.g. like in FLINK-8255. + */ + @Test + public void testMaxMinByRowTypeInfoKeyFieldsForUnsortedGrouping() { + final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); + + TypeInformation[] types = new TypeInformation[]{Types.INT, Types.INT}; + + String[] fieldNames = new String[]{"id", "value"}; + RowTypeInfo rowTypeInfo = new RowTypeInfo(types, fieldNames); + + UnsortedGrouping groupDs = env.fromCollection(Collections.singleton(new Row(2)), rowTypeInfo).groupBy(0); + + groupDs.maxBy(1); + groupDs.minBy(1); --- End diff -- The tests pass because the program is not executed. You would have to call `env.collect()` to run the program and compare the returned result against the expected result. As I pointed out before, this will fail, because the operator will cast the `Row` objects to `Tuple`. > Key expressions on named row types do not work > ---------------------------------------------- > > Key: FLINK-8255 > URL: https://issues.apache.org/jira/browse/FLINK-8255 > Project: Flink > Issue Type: Bug > Components: DataSet API, DataStream API > Affects Versions: 1.4.0, 1.5.0 > Reporter: Timo Walther > Assignee: Sergey Nuyanzin > Priority: Major > > The following program fails with a {{ClassCastException}}. It seems that key > expressions and rows are not tested well. We should add more tests for them. > {code} > final StreamExecutionEnvironment env = > StreamExecutionEnvironment.getExecutionEnvironment(); > TypeInformation[] types = new TypeInformation[] {Types.INT, Types.INT}; > String[] fieldNames = new String[]{"id", "value"}; > RowTypeInfo rowTypeInfo = new RowTypeInfo(types, fieldNames); > env.fromCollection(Collections.singleton(new Row(2)), rowTypeInfo) > .keyBy("id").sum("value").print(); > env.execute("Streaming WordCount"); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)