Search Postgresql Archives

Re: Any was to prevent a join if no columns are selected from a view?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 30/09/2011, at 8:57 AM, Jason Long wrote:

I thought I had read somewhere that Postges could ignore a join if it
was not necessary because there were no columns from the table or view
selected in the query.  Is this possible?

You might be thinking of this enhancement introduced in 9.0:


  • Remove unnecessary outer joins (Robert Haas)

    Outer joins where the inner side is unique and not referenced above the join are unnecessary and are therefore now removed. This will accelerate many automatically generated queries, such as those created by object-relational mappers (ORMs).


Ack! Hit send too early.

Note that enhancement addresses only the case where the inner join is unique (ie a primary key or covered by a unique constraint).  My understanding of this is that in this case the outer join won't affect the number of rows returned, so if it's not used it's not necessary.  Without the unique constraint, or if it's not an outer join it still needs to be included, even if you're not referencing the table in select / conditions because the join affects the number of rows…. HTH.. and I hope I understand this correctly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux