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

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Vik Fearing <vik@postgresfriends.org>
Cc: zuming.jiang@inf.ethz.ch, pgsql-bugs@lists.postgresql.org, Alexander Korotkov <akorotkov@postgresql.org>
Date: 2023-10-26T17:12:11Z
Lists: pgsql-bugs
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.

			regards, tom lane



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