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