- performance improvement: skip SEARCH command when mailbox is empty and SEARCH is called just after SELECT

release-0.6
alecpl 15 years ago
parent ffd3e29068
commit 309f49f09b

@ -476,11 +476,7 @@ class rcube_imap
$search_str .= " UNSEEN";
// get message count using SEARCH
// not very performant but more precise (using UNDELETED)
// disable THREADS for this request
$threads = $this->threading;
$this->threading = false;
$index = $this->_search_index($mailbox, $search_str);
$this->threading = $threads;
$index = $this->conn->search($mailbox, $search_str);
$count = is_array($index) ? count($index) : 0;

@ -1584,10 +1584,17 @@ class rcube_imap_generic
function search($folder, $criteria, $return_uid=false)
{
$old_sel = $this->selected;
if (!$this->select($folder)) {
return false;
}
// return empty result when folder is empty and we're just after SELECT
if ($old_sel != $folder && !$this->exists) {
return array();
}
$data = '';
$query = 'srch1 ' . ($return_uid ? 'UID ' : '') . 'SEARCH ' . chop($criteria);

Loading…
Cancel
Save