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
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:
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.
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
The query fails even though the row where x = 0 is rejected by the aggregate filter:
Expected behavior
The aggregate filter should prevent argument evaluation for rejected rows, and the query should return:
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.