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

Reply via email to