[
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)