"Tambet Matiisen" <t.matiisen@aprote.ee> writes:
> It seems that subquery scan is only used, when the query can not be
> translated into single flat query. Which is mostly good, I assume.
The planner thinks so anyway ;-)
If you're desperate you can put in an optimization fence, for instance
LIMIT or OFFSET.
SELECT * FROM (SELECT ... OFFSET 0) ss;
In principle the planner could figure out that this offset is a no-op,
throw it away, and then flatten the query. But it doesn't at the
moment, and I doubt we'll teach it to do so in the future.
regards, tom lane