Re: UNION ALL and sequential scans

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Brad Jorsch" <programmer(at)protech1inc(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: UNION ALL and sequential scans
Date: 2009-05-14 14:52:47
Message-ID: 11600.1242312767@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

"Brad Jorsch" <programmer(at)protech1inc(dot)com> writes:
> But if I add a constant-valued column to indicate which branch of the
> union each result came from:

> explain analyze select * from baz join (
> select id, val, 'foo'::text as source from foo
> union all
> select id, val, 'bar'::text as source from bar
> ) as foobar on(baz.id2=foobar.id) where baz.id1=42;

> All of a sudden it insists on a sequential scan (and takes 800 times as
> long to run) even when enable_seqscan is set false. Is there a good
> reason for this, or is it just a missed opportunity in the optimizer?

It's an ancient and fundamental limitation that is fixed in 8.4.
Do not expect to see it fixed in 8.3.x.

regards, tom lane

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Mathieu De Zutter 2009-05-14 15:10:29 Re: UNION ALL and sequential scans
Previous Message Brad Jorsch 2009-05-14 14:37:04 UNION ALL and sequential scans