Re: BUG #17495: Regression in 15beta1 when filtering subquery including row_number window function
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Michael Paquier <michael@paquier.xyz>,
jeremyevans0@gmail.com, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2022-05-26T04:34:04Z
Lists: pgsql-bugs
On Thu, May 26, 2022 at 12:13 PM Richard Guo <guofenglinux@gmail.com> wrote: > > On Thu, May 26, 2022 at 11:47 AM David Rowley <dgrowleyml@gmail.com> > wrote: > >> The problem is that the qual pushdown stuff all happens in >> set_subquery_pathlist() before we call subquery_planner() for the >> subquery. We don't yet have a PlannerInfo made for the subquery when >> we call check_and_push_window_quals(). We don't really have any other >> means to communicate to subquery_planner() what the run conditions are >> for the given Query object. Plus, we *do* really need to know what the >> runConditions are before we call subquery_planner() so that those >> conditions can be properly tagged onto WindowAggPaths. I don't really >> think it would be right to pluck those from the PlannerInfo when we >> later call create_plan(). That wouldn't leave us any opportunity to do >> any costing related stuff with run conditions if we decide to do that >> later. >> > > The remove_unused_subquery_outputs() also happens before we call > subquery_planner() for the subquery. Cann't we just store the attnos > used in window quals that are pushed down to runConditions in the > PlannerInfo of the upper query? > Ah, your point is to move runConditions also out of WindowClause and store them in PlannerInfo, right? That's indeed not an easy job. Thanks Richard
Commits
-
Teach remove_unused_subquery_outputs about window run conditions
- 3e9abd2eb1b1 15.0 landed