Re: BUG #17826: An assert failed in /src/backend/optimizer/util/var.c
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: David Rowley <dgrowleyml@gmail.com>
Cc: xinwen@stu.scu.edu.cn, pgsql-bugs@lists.postgresql.org
Date: 2023-03-12T21:43:55Z
Lists: pgsql-bugs
David Rowley <dgrowleyml@gmail.com> writes: > It is only possible to either leave such quals in the outer query in > the WHERE clause or make them run conditions of some WindowClause in > the subquery. They can never be legally in the WHERE clause of the > subquery as window functions cannot be evaluated in the WHERE clause. Ah, got it. So basically, the quals that we want are excluded by check_output_expressions' point 4 (since they reference window function output columns rather than partitioning columns). I think we need them to satisfy every other property that's checked in this code, though. Now I agree that we need to refactor a bit -- we don't want to have to re-check all of these conditions. regards, tom lane
Commits
-
Fix incorrect logic for determining safe WindowAgg run conditions
- 371e3daaa53d 15.3 landed
- eb7d043c9bba 16.0 landed
-
Teach planner and executor about monotonic window funcs
- 9d9c02ccd1ae 15.0 cited