On Jul 5, 2012, at 3:51 PM, Tom Lane wrote:

> Steven Schlansker <ste...@likeness.com> writes:
>> Why is using an OR so awful here?
> 
> Because the OR stops it from being a join (it possibly needs to return
> some rows that are not in the semijoin of the two tables).
> 
>> Why does it pick a sequential scan?  Is this an optimizer bug
> 
> No.  It can't transform OR into a UNION because the results might not
> be the same.  I assume you don't care about removal of duplicates, or
> have some reason to know that there won't be any ... but the planner
> doesn't know that.
> 

Thanks for the insight here.  It still seems unfortunate that it picks a
sequential scan -- but if there really is no more efficient way to do this,
I will just rewrite the query.

Steven


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to