lyne7-sc opened a new issue, #24507:
URL: https://github.com/apache/datafusion/issues/24507

   ### Describe the bug
   
   Window aggregates evaluate their argument expressions before applying the 
aggregate `FILTER`.
   
   This can cause a query to fail while evaluating rows that should not 
participate in the window aggregate.
   
   ### To Reproduce
   
   ```sql
   SELECT
     id,
     SUM(10 / x) FILTER (WHERE x <> 0) OVER (ORDER BY id) AS running_sum
   FROM (
     VALUES
       (1, 2),
       (2, 0),
       (3, 5)
   ) AS t(id, x)
   ORDER BY id;
   ```
   
   The query fails even though the row where x = 0 is rejected by the aggregate 
filter:
   
   ```
   Arrow error: Divide by zero error
   ```
   
   ### Expected behavior
   
   The aggregate filter should prevent argument evaluation for rejected rows, 
and the query should return:
   
   ```
   1 5
   2 5
   3 7
   ```
   
   ### Additional context
   
   This is the window-aggregate counterpart of #24443.
   
   #24444 addresses the same evaluation-order issue for grouped aggregates, but 
window aggregates use a separate physical evaluation path and remain affected.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to