Github user walterddr commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5555#discussion_r184441869
  
    --- Diff: 
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/functions/aggfunctions/DistinctAccumulator.scala
 ---
    @@ -47,60 +51,51 @@ class DistinctAccumulator[E, ACC](var realAcc: ACC, var 
mapView: MapView[E, JLon
       override def equals(that: Any): Boolean =
         that match {
           case that: DistinctAccumulator[E, ACC] => that.canEqual(this) &&
    -        this.mapView == that.mapView
    +        this.distinctValueMap == that.distinctValueMap
           case _ => false
         }
     
       def add(element: E): Boolean = {
    -    if (element != null) {
    -      val currentVal = mapView.get(element)
    -      if (currentVal != null) {
    -        mapView.put(element, currentVal + 1L)
    -        false
    -      } else {
    -        mapView.put(element, 1L)
    -        true
    -      }
    -    } else {
    +    val wrappedElement = Row.of(element)
    --- End diff --
    
    Thanks @fhueske for the insight. yeah I thought about that before the last 
commit but didn't go through with it, since we still need to construct the row 
of single element before passing to the distinct accumulator. But you are 
right, it will make future optimization easier


---

Reply via email to