Re: BUG #17777: An assert failed in nodeWindowAgg.c
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, xinwen@stu.scu.edu.cn,
pgsql-bugs@lists.postgresql.org
Date: 2023-02-13T00:55:37Z
Lists: pgsql-bugs
David Rowley <dgrowleyml@gmail.com> writes:
> On Mon, 13 Feb 2023 at 05:19, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Why is it okay to check only the filter, and not the rest of the
>> WindowFunc's subexpressions? The arguments we've just run through
>> seem to apply to a subplan in the direct or aggregated arguments
>> as well.
> Good point. I had just been thinking in terms of the reported bug to
> make sure we inverse transition the same rows we transition. We also
> need to make sure the transition value matches in both transition
> directions.
> I've adjusted the patch accordingly.
Code looks good now, but the comment still claims this is only
important in the FILTER clause. I'd rewrite the whole thing
perhaps:
* We also don't risk using moving aggregates when there are subplans
* in the arguments or FILTER clause. This is partly because
* contain_volatile_functions() doesn't look inside subplans; but
* there are other reasons why a subplan's output might be volatile.
* For example, syncscan mode can render the results nonrepeatable.
regards, tom lane
Commits
-
Disable WindowAgg inverse transitions when subplans are present
- 836c31ba508c 16.0 landed
- a9fa6d79aded 15.3 landed
- 4aa43ba21846 14.8 landed
- 301eb3ee4ecd 13.11 landed
- ac55abd33537 12.15 landed
- 8d2a8581b6d6 11.20 landed