Re: Suboptimal query plan fixed by replacing OR with UNION

From: Steven Schlansker <steven(at)likeness(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org, David Stryker <stryker(at)likeness(dot)com>
Subject: Re: Suboptimal query plan fixed by replacing OR with UNION
Date: 2012-07-05 23:16:43
Message-ID: F1A0374B-5B7E-4E54-9B8A-197A451A486F@likeness.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


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

> 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.
>

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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Keith Fiske 2012-07-06 00:07:03 Issue with extension updates to pg_extension table
Previous Message James Hartley 2012-07-05 23:03:52 Re: Packt's PostgreSQL 9 Administration Cookbook: LITE Editions?