Large mailboxes

Mark Edwards mark at antsclimbtree.com
Sat Feb 25 23:48:05 CET 2006


On Feb 25, 2006, at 11:26 AM, Leonard Bouchet wrote:

> Hi,
>
> On 25 févr. 06, at 19:11, Thomas Bruederli wrote:
>
>> Any suggestions to improve this operation are welcome.
>
> What about setting the prev/next ids in the row when you build the  
> list, and then passing this information back to the show_message  
> command?
>
> I just had a complete look at the code and it seems feasible with  
> some not so trivial modifications. Should I give it a try?

Just looking at the code in question, it looks like it builds a giant  
array with the box's entire index data in it, which obviously will  
grow along with the size of the mailbox:

   // get previous and next message UID
   $a_msg_index = $IMAP->message_index(NULL, $_SESSION['sort_col'],  
$_SESSION['sort_order']);
   $MESSAGE['index'] = array_search((string)$_GET['_uid'],  
$a_msg_index, TRUE);

   if (isset($a_msg_index[$MESSAGE['index']-1]))
     $javascript .= sprintf("\n%s.set_env('prev_uid', '%s');",  
$JS_OBJECT_NAME, $a_msg_index[$MESSAGE['index']-1]);
   if (isset($a_msg_index[$MESSAGE['index']+1]))
     $javascript .= sprintf("\n%s.set_env('next_uid', '%s');",  
$JS_OBJECT_NAME, $a_msg_index[$MESSAGE['index']+1]);

Shouldn't there be a way to retrieve the UID's in question without  
building an array of the entire mailbox?  Or maybe I'm missing what  
the code is doing.

I'm trying to figure out how the UID's get retrieved when the whole  
mailbox is listed, because that's plenty fast.  I'm getting lost in  
the code though.

--
Mark Edwards






More information about the Dev mailing list