> Yeah, this is a known limitation of the planner: it's only bright enough
> to skip an explicit sort step for an ORDER BY clause when the plan that
> *would be chosen anyway in the absence of ORDER BY* happens to produce
> a properly sorted result. In your first example the WHERE clause can
> be exploited to scan only part of the index (notice the difference in
> estimated output row counts), so an indexscan gets chosen --- and that
> just happens to deliver the sorted result you want. In the second
> example the plan-picker sees no reason to use anything more expensive
> than a sequential scan :-(
>
> We need to push awareness of the output ordering requirement down into
> the code that chooses the basic plan. It's on the TODO list (or should
> be) but I dunno when someone will get around to it.
Added to TODO:
* Allow optimizer to prefer plans that match ORDER BY
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026