| From: | Matthew Wakeling <matthew(at)flymine(dot)org> | 
|---|---|
| To: | Eliot Gable <egable+pgsql-performance(at)gmail(dot)com> | 
| Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>, pgsql-performance(at)postgresql(dot)org | 
| Subject: | Re: Highly Efficient Custom Sorting | 
| Date: | 2010-07-02 14:50:55 | 
| Message-ID: | alpine.DEB.2.00.1007021548080.2534@aragorn.flymine.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-performance | 
> On Fri, Jul 2, 2010 at 12:08 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> I'm guessing from tea leaves, but the impression I got from Eliot's
>> description is that he's using plpgsql functions as sort comparators.
>> It's not surprising that that sucks performance-wise compared to having
>> the equivalent logic in C/C++ functions used as comparators on the
>> client side.  plpgsql is no speed demon.  Best fix might be to code the
>> comparators as C functions on the server side.
On Fri, 2 Jul 2010, Eliot Gable wrote:
> I guess the real question is, is a generic C sorting function my only real
> alternative?
Sounds to me like you are not really listening. You don't need to code an 
entire sorting algorithm in C, as Postgres already has a pretty good one 
of those. All you need to do is implement a comparator of some kind. 
Inserting C functions into Postgres is pretty easy, especially on the 
level of comparators.
Matthew
-- 
 For those of you who are into writing programs that are as obscure and
 complicated as possible, there are opportunities for... real fun here
                                        -- Computer Science Lecturer
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Merlin Moncure | 2010-07-02 14:56:46 | Re: Highly Efficient Custom Sorting | 
| Previous Message | MUHAMMAD ASIF | 2010-07-02 14:38:51 | using dbt2 postgresql 8.4 - rampup time issue |