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]