Re: Removing INNER JOINs

From: Jim Finnerty <jfinnert(at)amazon(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Removing INNER JOINs
Date: 2017-12-11 13:38:03
Message-ID: 1512999483420-0.post@n3.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Great example, David. The planner can detect whether a SELECT statement
contains a volatile function, and can disable the proposed redundant
inner-join optimization in that case.

If necessary, the planner could also check that the FK constraint is not
DEFERRED, but if there are no volatile functions and the SELECT statement
can't see an inconsistent state created by any other transaction, I think
that just checking for volatile functions and not being inside a DML
transaction would be sufficient.

A further opportunity would be to apply this to any SELECT statement in a
DML transaction, provided that there was no prior DML statement or statement
containing a volatile function in the same transaction.

We already have a redundant outer join optimization, and I've implemented
the redundant inner join optimization in two other products before, so
adding the additional logic to support the inner join case(s) sounds
straightforward to me. Can anyone think of any other problem scenarios?

/Jim F

--
Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ray Stell 2017-12-11 14:43:48 PostgreSQL is so hip again
Previous Message Vincent Veyron 2017-12-11 13:37:39 Re: Windows XP to Win 10 migration issue