Re: BUG #18170: Unexpected error: no relation entry for relid 3

Alexander Korotkov <aekorotkov@gmail.com>

From: Alexander Korotkov <aekorotkov@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Vik Fearing <vik@postgresfriends.org>, zuming.jiang@inf.ethz.ch, pgsql-bugs@lists.postgresql.org, Alexander Korotkov <akorotkov@postgresql.org>
Date: 2023-10-26T17:36:05Z
Lists: pgsql-bugs
On Thu, Oct 26, 2023 at 8:12 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Vik Fearing <vik@postgresfriends.org> writes:
> > On 10/26/23 16:01, PG Bug reporting form wrote:
> >> My fuzzer finds a bug in Postgres, which triggers an unexpected error.
>
> > This bisects to d3d55ce571369dad6e1d582f1655e5a3fbd8594a, Remove useless
> > self-joins.
>
> I wonder if that new code thinks it can remove ref_2 from the query,
> even though ref_2 is used in the targetlist.  I'm not seeing
> control reach remove_leftjoinrel_from_query, though.
>
> Also, while nosing around in this, I tried to pprint(root) at the
> point of the error, and got
>
> 2023-10-26 12:48:37.852 EDT [1186007] WARNING:  could not dump unrecognized node type: 37413808
>
> This happens because the patch changed RelOptInfo.unique_for_rels from
> a list of Bitmapsets into a list of UniqueRelInfo, even though it did
> not bother to make UniqueRelInfo be a Node type (much less document
> the change in globally-visible data structures: pathnodes.h still says
> it's a list of Relid sets).  This is not acceptable.
>
> I'm getting the distinct impression that this patch wasn't
> ready for prime time.

Please, give me a chance to fix this shortly.  If that wouldn't be an
easy fix, I will revert.

------
Regards,
Alexander Korotkov



Commits

  1. Disable run condition optimization for some WindowFuncs

  2. Fix allocation of UniqueRelInfo

  3. Make UniqueRelInfo a node

  4. Add "Add trailing commas to enum definitions" to .git-blame-ignore-revs

  5. Remove useless self-joins