Re: qsort again (was Re: [PERFORM] Strange Create Index

Neil Conway <neilc@samurai.com>

From: Neil Conway <neilc@samurai.com>
To: "Steinar H. Gunderson" <sgunderson@bigfoot.com>
Cc: pgsql-performance@postgresql.org, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2006-02-16T19:14:03Z
Lists: pgsql-hackers, pgsql-performance
On Thu, 2006-02-16 at 12:35 +0100, Steinar H. Gunderson wrote:
> glibc-2.3.5/stdlib/qsort.c:
> 
>   /* Order size using quicksort.  This implementation incorporates
>      four optimizations discussed in Sedgewick:
> 
> I can't see any references to merge sort in there at all.

stdlib/qsort.c defines _quicksort(), not qsort(), which is defined by
msort.c. On looking closer, it seems glibc actually tries to determine
the physical memory in the machine -- if it is sorting a single array
that exceeds 1/4 of the machine's physical memory, it uses quick sort,
otherwise it uses merge sort.

-Neil