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`.


---

Reply via email to