Re: Eliminating unnecessary left joins

From: "Simon Riggs" <simon(at)2ndquadrant(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Ottó Havasvölgyi <havasvolgyi(dot)otto(at)gmail(dot)com>, <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Eliminating unnecessary left joins
Date: 2007-04-07 08:50:39
Message-ID: 1175935839.3623.560.camel@silverbirch.site
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, 2007-04-06 at 19:38 -0400, Tom Lane wrote:
> "=?ISO-8859-1?Q?Ott=F3_Havasv=F6lgyi?=" <havasvolgyi(dot)otto(at)gmail(dot)com> writes:
> > When using views built with left joins, and then querying against these
> > views, there are a lot of join in the plan that are not necessary, because I
> > don't select/use any column of each table in the views every time. Tables
> > that are left joined and never referenced anywhere else in the query should
> > be removed from the plan.
>
> That might cause you to get the wrong number of copies of some rows ---
> what if a row of the left table should join to multiple rows on the right?

In the case that PKs match between the tables, then exclusion is safe.

This would enable vertical partitioning, so is a very desirable feature.

If this was possible, it would be a commonly used optimisation.

--
Simon Riggs
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tzahi Fadida 2007-04-07 10:23:47 Re: Problems with the varlena patch in my module
Previous Message Mark Shuttleworth 2007-04-07 07:37:07 Re: elog(FATAL) vs shared memory