Otherwise the GUID lookup may be expensive, which is especially bad when
deleting a large number of mails.
void index_mail_expunge(struct mail *mail)
{
+ enum mail_lookup_abort old_abort = mail->lookup_abort;
const char *value;
guid_128_t guid_128;
+ mail->lookup_abort = MAIL_LOOKUP_ABORT_NOT_IN_CACHE;
if (mail_get_special(mail, MAIL_FETCH_GUID, &value) < 0)
mail_index_expunge(mail->transaction->itrans, mail->seq);
else {
mail_index_expunge_guid(mail->transaction->itrans,
mail->seq, guid_128);
}
+ mail->lookup_abort = old_abort;
}
static void index_mail_parse(struct mail *mail, bool parse_body)