Re: UNION ALL and sequential scans

From: Tom Lane
Subject: Re: UNION ALL and sequential scans
Date: ,
Msg-id: 11600.1242312767@sss.pgh.pa.us
(view: Whole thread, Raw)
In response to: UNION ALL and sequential scans  ("Brad Jorsch")
Responses: Re: UNION ALL and sequential scans  (Mathieu De Zutter)
List: pgsql-performance

Tree view

UNION ALL and sequential scans  ("Brad Jorsch", )
 Re: UNION ALL and sequential scans  (Tom Lane, )
  Re: UNION ALL and sequential scans  (Mathieu De Zutter, )
   Re: UNION ALL and sequential scans  (Tom Lane, )

"Brad Jorsch" <> 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


pgsql-performance by date:

From: Dimitri
Date:
Subject: Re: Any better plan for this query?..
From: David Wilson
Date:
Subject: Re: superlative missuse