"Brad Jorsch" <programmer@xxxxxxxxxxxxxxx> 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 -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance