On Jul 5, 2012, at 3:51 PM, Tom Lane wrote:
> Steven Schlansker <steven@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