Chris Angelico rosuav at gmail.com
Tue Jan 24 03:29:05 EST 2012

On Mon, Jan 23, 2012 at 11:17 PM, Douglas Eric <sekkuar at hotmail.com> wrote:
> I suggest to change this behavior. If one makes a SELECT statement without
> any ORDER BY, it would be
> clever to automatically sort by the first primary key found in the query, if
> any.
> The present behavior would still be used in case of queries without any
> primary key fields.

This would require that work be done without text commanding it, which
is IMHO a bad idea. Generally, SQL follows the principle that more
text --> more work: compare SELECT and SELECT DISTINCT (it's more work
to look for duplicates), VACUUM and VACUUM ANALYZE, etc, etc. The
default state is to do the least work that makes sense. (There are
exceptions - UNION ought to be UNION DISTINCT, versus UNION ALL to
reduce the work done - but this is the general rule.)

Often, a query is done with genuine disregard for order. If you're
going to take the results of the query and stuff them into a
hashtable, you don't care what order they come up in. Why have the
database sort them? Let 'em come in the easiest order possible.


More information about the Python-list mailing list