Steven Schlansker <steven(at)likeness(dot)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.
regards, tom lane