Re: BUG #18187: Unexpected error: "variable not found in subplan target lists" triggered by JOIN

Richard Guo <guofenglinux@gmail.com>

From: Richard Guo <guofenglinux@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andrei Lepikhov <a.lepikhov@postgrespro.ru>, Alexander Korotkov <aekorotkov@gmail.com>, zuming.jiang@inf.ethz.ch, pgsql-bugs@lists.postgresql.org, PG Bug reporting form <noreply@postgresql.org>
Date: 2023-11-28T08:03:47Z
Lists: pgsql-bugs
On Tue, Nov 28, 2023 at 3:03 PM Richard Guo <guofenglinux@gmail.com> wrote:

> On Tue, Nov 28, 2023 at 1:42 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
>> BTW, why is it that it seems to prefer to remove the first of
>> the two self-joined rels, rather than the second?  That seems
>> jarringly bizarre.
>
>
> Hmm, I'm not sure either.  Alexander and Andrei, could you please share
> your insights?
>

BTW, while reading the codes, I noticed this commit of
remove_self_joins_recurse.

* ... To avoid complexity, limit the max power of this set by a GUC.

But where is the GUC?   I guess that it refers to
self_join_search_limit, which has been removed during development.

So we should revise this commit to at least remove any mention of the
GUC.  Maybe it'd better to add a new commit explaining why we are not
concerned about cases where the number of self joins is too large.

Thanks
Richard

Commits

  1. Fix a comment for remove_self_joins_recurse()

  2. Don't constrain self-join removal due to PHVs

  3. Handle PlaceHolderVar case in replace_varno_walker

  4. Fix how SJE checks against PHVs

  5. citext: Allow tests to pass in OpenSSL FIPS mode