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

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Mark Lewis <mark.lewis@mir3.com>
Cc: David Lang <dlang@invendra.net>, Greg Stark <gsstark@mit.edu>, Markus Schaber <schabi@logix-tt.com>, pgsql-performance@postgresql.org, pgsql-hackers@postgresql.org
Date: 2006-02-17T19:43:06Z
Lists: pgsql-hackers, pgsql-performance
Mark Lewis <mark.lewis@mir3.com> writes:
> I think we're actually on the same page here; you're right that the
> constraint above ( f(a)==f(b) iff a==b ) can't be extended to data types
> with more than 32 bits of value space.  But the constraint I listed was
> actually:

> if a==b then f(a)==f(b)

I believe Martijn had it right: the important constraint is

	f(a) > f(b) implies a > b

which implies by commutativity

	f(a) < f(b) implies a < b

and these two together imply

	a == b implies f(a) == f(b)

Now you can't do any sorting if you only have the equality rule, you
need the inequality rule.

			regards, tom lane