From: | Markus Schaber <schabi(at)logix-tt(dot)com> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: qsort again (was Re: [PERFORM] Strange Create Index |
Date: | 2006-02-16 22:33:48 |
Message-ID: | 43F4FDCC.2000204@logix-tt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-performance |
Hi, Mark,
Mark Lewis schrieb:
> It seems that instead of maintaining a different sorting code path for
> each data type, you could get away with one generic path and one
> (hopefully faster) path if you allowed data types to optionally support
> a 'sortKey' interface by providing a function f which maps inputs to 32-
> bit int outputs, such that the following two properties hold:
>
> f(a)>=f(b) iff a>=b
> if a==b then f(a)==f(b)
Hmm, to remove redundancy, I'd change the <= to a < and define:
if a==b then f(a)==f(b)
if a<b then f(a)<=f(b)
> 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).
With int2 or some restricted ranges of oid and int4, we could even
implement a bucket sort.
Markus
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2006-02-16 22:40:06 | Re: qsort again (was Re: [PERFORM] Strange Create Index |
Previous Message | Mark Lewis | 2006-02-16 22:17:36 | Re: qsort again (was Re: [PERFORM] Strange Create Index |
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2006-02-16 22:40:06 | Re: qsort again (was Re: [PERFORM] Strange Create Index |
Previous Message | Mark Lewis | 2006-02-16 22:17:36 | Re: qsort again (was Re: [PERFORM] Strange Create Index |