[
https://issues.apache.org/jira/browse/FLINK-8255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16466381#comment-16466381
]
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_r186477977
--- Diff:
flink-java/src/main/java/org/apache/flink/api/java/functions/SelectByMinFunction.java
---
@@ -41,7 +41,7 @@
* is regarded in the reduce function. First index has highest priority
and last index has
* least priority.
*/
- public SelectByMinFunction(TupleTypeInfo<T> type, int... fields) {
+ public SelectByMinFunction(TupleTypeInfoBase<T> type, int... fields) {
--- End diff --
The `ReduceFunction` is still typed to `T extends Tuple` such that this
will still fail at runtime. The same is true for all other built-in aggregation
method like `sum()` and `min()` on `DataSet` and `UnsortedGrouping`.
This cannot be resolved without major changes. I don't think we should add
these features, but rather throw meaningful error messages instead of
`ClassCastException`.
Can you try to override the the `isTupleType()` method in `RowTypeInfo` and
return `false`?
This would prevent `Row` from being used in contexts that are only
supported for `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)