Re: additional message to the bug #7499 - Mailing list pgsql-bugs

From Craig Ringer
Subject Re: additional message to the bug #7499
Date
Msg-id 50358E25.9040105@ringerc.id.au
Whole thread Raw
In response to additional message to the bug #7499  (Denis Kolesnik <lirex.software@gmail.com>)
List pgsql-bugs
On 08/22/2012 08:36 AM, Denis Kolesnik wrote:
> I have now VERY strong argument to consider it is as a bug:
>
> if there a understandable for SQL language sequence which sorts
> in other fashion when adding "LIMIT".

Underspecified sorts can have unstable results, that's allowed by the
spec and is a reasonable performance optimisation. If you want stable
sorts you have to provide a fully defined ordering.

To say this is a bug is a bit like saying that undefined behaviour in C
is a bug. It isn't, the language and compiler are giving you what
they're supposed to, just not what you want.

http://en.wikipedia.org/wiki/Undefined_behavior

Unstable sorts are a common optimisation

http://en.wikipedia.org/wiki/Sorting_algorithm#Stability

and a very useful one. Not allowing Pg to use unstable sorts, or use
different sorts for different query plans, would slow correct queries
down to make an incorrect query like yours run how you expect.

--
Craig Ringer

pgsql-bugs by date:

Previous
From: Craig Ringer
Date:
Subject: Re: bug #7499 additional comments
Next
From: matthew.p.kusnierz@jpmorgan.com
Date:
Subject: BUG #7501: Unique index fails to check uniqueness on nulls