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

David Lang <dlang@invendra.net>

From: David Lang <dlang@invendra.net>
To: Mark Lewis <mark.lewis@mir3.com>
Cc: Greg Stark <gsstark@mit.edu>, Markus Schaber <schabi@logix-tt.com>, pgsql-performance@postgresql.org, pgsql-hackers@postgresql.org
Date: 2006-02-17T05:33:16Z
Lists: pgsql-hackers, pgsql-performance
On Thu, 16 Feb 2006, Mark Lewis wrote:

> On Thu, 2006-02-16 at 17:51 -0500, Greg Stark wrote:
>>>> Data types which could probably provide a useful function for f would be
>>>> int2, int4, oid, and possibly int8 and text (at least for SQL_ASCII).
>>
>> How exactly do you imagine doing this for text?
>>
>> I could see doing it for char(n)/varchar(n) where n<=4 in SQL_ASCII though.
>
>
> In SQL_ASCII, just take the first 4 characters (or 8, if using a 64-bit
> sortKey as elsewhere suggested).  The sorting key doesn't need to be a
> one-to-one mapping.

that would violate your second contraint ( f(a)==f(b) iff (a==b) )

if you could drop that constraint (the cost of which would be extra 'real' 
compares within a bucket) then a helper function per datatype could work 
as you are talking.

David Lang