Re: BUG #18187: Unexpected error: "variable not found in subplan target lists" triggered by JOIN
Andrei Lepikhov <a.lepikhov@postgrespro.ru>
From: Andrei Lepikhov <a.lepikhov@postgrespro.ru>
To: Richard Guo <guofenglinux@gmail.com>,
Alexander Korotkov <aekorotkov@gmail.com>
Cc: zuming.jiang@inf.ethz.ch, pgsql-bugs@lists.postgresql.org,
PG Bug reporting form <noreply@postgresql.org>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2023-11-22T02:32:06Z
Lists: pgsql-bugs
On 20/11/2023 15:49, Richard Guo wrote: > I'm wondering if we can relax this restriction because it seems to me > that a PHV evaluated/needed at or below the self join should not have > problem if we remove the self join. > > > After some more thought, I think PHVs should not impose any constraints > on removing self joins. If the removed rel is contained in the relids > that a PHV is evaluated/needed at or laterally references, it can just > be replaced with the rel that is kept. > > Attached is a patch to remove such constraints. Any comments or > feedback are welcome. Carrying out excavations, I found that it was Teodor Sigaev who added this limitation in v.20 of the patch in an earlier stage of the development. I also had analyzed this part of code and came to the conclusion that it doesn't needed. Only a paranoid approach and the absence of an alternative opinion are the reasons why this code is still exists. Your patch is ok. I think the comment, 'PHVs should not impose ...' looks redundant. It may be enough to have it in the commit comment. -- regards, Andrei Lepikhov Postgres Professional
Commits
-
Fix a comment for remove_self_joins_recurse()
- 0a93f803f45f 17.0 landed
-
Don't constrain self-join removal due to PHVs
- b5fb6736ed3b 17.0 landed
-
Handle PlaceHolderVar case in replace_varno_walker
- 8a8ed916f73f 17.0 landed
-
Fix how SJE checks against PHVs
- b7f315c9d7d8 17.0 landed
-
citext: Allow tests to pass in OpenSSL FIPS mode
- 3c551ebede46 17.0 cited