On Fri, Feb 29, 2008 at 05:28:29PM +0530, Gurjeet Singh wrote:
> On Fri, Feb 29, 2008 at 3:55 PM, Martijn van Oosterhout <kleptog@svana.org> wrote:
> > Except if you have an index on the column you're ordering by. Then the
> > server can really return the first row quickly.
>
> Quickly for sure... but I don't think 'without processing all the rows that
> qualify'.
Postgres will always try to do the smallest amount of work possible.
Putting a LIMIT in will cause the planner to pick a plan that returns an
appropriate number of rows quickly, sometimes it can be a very different
plan.
> I think it will still process all the rows and return just one.
How do you explain that when you run:
SELECT 1/v FROM (VALUES (1),(0)) c(v);
Without a limit you get a "division by zero" exception, and when you
have a limit of one row you get a result back.
Sam