Re: mailing list archiver chewing patches - Mailing list pgsql-hackers

From Matteo Beccati
Subject Re: mailing list archiver chewing patches
Date
Msg-id 4B4F2556.80907@beccati.com
Whole thread Raw
In response to Re: mailing list archiver chewing patches  (Dimitri Fontaine <dfontaine@hi-media.com>)
Responses Re: mailing list archiver chewing patches
Re: mailing list archiver chewing patches
List pgsql-hackers
Il 14/01/2010 14:39, Dimitri Fontaine ha scritto:
> Matteo Beccati<php@beccati.com>  writes:
>> I've extended AOX with a trigger that takes care of filling a separate table
>> that's used to display the index pages. The new table also stores threading
>> information (standard headers + Exchange headers support) and whether or not
>> the email has attachments.
>>
>> Please check the updated PoC: http://archives.beccati.org/
>
> Looks pretty good, even if some thread are still separated (this one for
> example), and the ordering looks strange.

This one is separated as the first one is not in the archive yet, thus 
to the system there are multiple parent messages. It shouldn't happen 
with full archives. About sorting, here's the query I've used (my first 
try with CTEs incidentally):

WITH RECURSIVE t (mailbox, uid, date, subject, sender, has_attachments, 
parent_uid, idx, depth) AS (  SELECT mailbox, uid, date, subject, sender, has_attachments, 
parent_uid, uid::text, 1  FROM arc_messages  WHERE parent_uid IS NULL AND mailbox = 15  UNION ALL  SELECT a.mailbox,
a.uid,a.date, a.subject, a.sender, 
 
a.has_attachments, a.parent_uid, t.idx || '.' || a.uid::text, t.depth + 1  FROM t JOIN arc_messages a USING (mailbox)
WHEREt.uid = a.parent_uid
 
) SELECT * FROM t ORDER BY idx

Any improvements to sorting are welcome :)


Cheers
-- 
Matteo Beccati

Development & Consulting - http://www.beccati.com/


pgsql-hackers by date:

Previous
From: Dimitri Fontaine
Date:
Subject: Re: patch to implement ECPG side tracing / tracking ...
Next
From: Heikki Linnakangas
Date:
Subject: Streaming replication, retrying from archive