Re: Killing off removed rels properly

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Richard Guo <guofenglinux@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2023-02-13T18:39:13Z
Lists: pgsql-hackers
Richard Guo <guofenglinux@gmail.com> writes:
> On Sat, Feb 11, 2023 at 4:50 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> I think it's time to clean this up by removing the rel from the
>> planner data structures altogether.  The attached passes check-world,
>> and if it does trigger any problems I would say that's a clear
>> sign of bugs elsewhere.

> +1. The patch looks good to me.

Pushed, thanks for looking at it!

> One minor comment is that we should
> also remove the comments about RELOPT_DEADREL in pathnodes.h.

Yeah, I noticed that shortly after posting the patch :-(.  Searching
the optimizer code for other references to "dead" rels turned up another
place where the comments need fixed, namely match_foreign_keys_to_quals
... which is someplace I should have thought to check before, given the
reference to it in remove_rel_from_query.  Its code is fine as-is though.

			regards, tom lane



Commits

  1. Prevent join removal from removing the query's result relation.

  2. Remove gratuitous assumptions about what make_modifytable can see.

  3. When removing a relation from the query, drop its RelOptInfo.

  4. Allow left join removals and unique joins on partitioned tables