From: David Bremner Date: Thu, 12 Jan 2017 02:01:15 +0000 (-0400) Subject: lib: optimize counting documents X-Git-Tag: 0.24_rc0~45 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=70519319b59ca55d511c5b44ff8c299cbe93c572;hp=4a2ce7b5706b53cdd30c474d556f18d731c21bb5 lib: optimize counting documents From #xapian olly> bremner: btw, i noticed notmuch count see ms to request all the documents and then ignores them bremner> hmm. There's something funny about the way that notmuch uses matches in general iirc olly> it should be able to do: mset = enquire.get_mset (0, 0, notmuch->xapian_db->get_doccount ()); ... olly> get_matches_estimated() will be exact because check_at_least is the size of the database --- diff --git a/lib/query.cc b/lib/query.cc index 53efd4e1..4ccd8104 100644 --- a/lib/query.cc +++ b/lib/query.cc @@ -606,8 +606,9 @@ _notmuch_query_count_documents (notmuch_query_t *query, const char *type, unsign /* * Set the checkatleast parameter to the number of documents * in the database to make get_matches_estimated() exact. + * Set the max parameter to 0 to avoid fetching documents we will discard. */ - mset = enquire.get_mset (0, notmuch->xapian_db->get_doccount (), + mset = enquire.get_mset (0, 0, notmuch->xapian_db->get_doccount ()); count = mset.get_matches_estimated();