Re: Removing unneeded self joins

From: Andrei Lepikhov <a(dot)lepikhov(at)postgrespro(dot)ru>
To: Robert Haas <robertmhaas(at)gmail(dot)com>, Alexander Korotkov <aekorotkov(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Richard Guo <guofenglinux(at)gmail(dot)com>, Alexander Lakhin <exclusion(at)gmail(dot)com>, "Gregory Stark (as CFM)" <stark(dot)cfm(at)gmail(dot)com>, Michał Kłeczek <michal(at)kleczek(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Removing unneeded self joins
Date: 2024-05-05 02:45:47
Message-ID: 24e93efd-eeac-43a6-a75a-ad68eacb32ee@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 3/5/2024 20:55, Robert Haas wrote:
> One of my most embarrassing gaffes in this area personally was
> a448e49bcbe40fb72e1ed85af910dd216d45bad8. I don't know how I managed
> to commit the original patch without realizing it was going to cause
> an increase in the WAL size, but I can tell you that when I realized
> it, my heart sank through the floor.
I discovered this feature and agree that it looks like a severe problem.
Unfortunately, in the case of the SJE patch, the committer and reviewers
don't provide negative feedback. We see the only (I'm not sure I use the
proper English phrase) 'negative feelings' from people who haven't
reviewed or analysed it at all (at least, they didn't mention it).

Considering the situation, I suggest setting the default value of
enable_self_join_removal to false in PG17 for added safety and then
changing it to true in early PG18.

Having no objective negative feedback, we have no reason to change
anything in the design or any part of the code. It looks regrettable and
unusual.

After designing the feature, fixing its bugs, and reviewing joint
patches on the commitfest, the question more likely lies in the planner
design. For example, I wonder if anyone here knows why exactly the
optimiser makes a copy of the whole query subtree in some places.
Another example is PlannerInfo. Can we really control all the
consequences of introducing, let's say, a new JoinDomain entity?

You also mentioned 2024.pgconf.dev. Considering the current migration
policy in some countries, it would be better to work through the online
presence as equivalent to offline. Without an online part of the
conference, the only way to communicate and discuss is through this
mailing list.

--
regards,
Andrei Lepikhov

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ahmad Mehmood 2024-05-05 05:09:29 Help regarding figuring out routes in pgAdmin4
Previous Message David Rowley 2024-05-05 00:07:30 Re: On disable_cost