Github user gatorsmile commented on the issue:

    https://github.com/apache/spark/pull/21443
  
    For the following query, we could see the performance regression
    ```SQL
    SELECT sum(DISTINCT x), avg(DISTINCT x)
    FROM (VALUES (1, 1), (2, 2), (2, 2)) t(x, y)
    ```
    
    Before this PR:
    ```
    == Optimized Logical Plan ==
    Aggregate [sum(distinct cast(x#189 as bigint)) AS sum(DISTINCT x)#193L, 
avg(distinct cast(x#189 as bigint)) AS avg(DISTINCT x)#194]
    +- LocalRelation [x#189]
    ```
    
    After this PR
    ```
    == Optimized Logical Plan ==
    Aggregate [sum(if ((gid#195 = 1)) CAST(`x` AS BIGINT)#196L else null) AS 
sum(DISTINCT x)#193L, avg(if ((gid#195 = 1)) CAST(`x` AS BIGINT)#196L else 
null) AS avg(DISTINCT x)#194]
    +- Aggregate [CAST(`x` AS BIGINT)#196L, gid#195], [CAST(`x` AS 
BIGINT)#196L, gid#195]
       +- Expand [List(cast(x#189 as bigint), 1)], [CAST(`x` AS BIGINT)#196L, 
gid#195]
          +- LocalRelation [x#189]
    ```


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to