From 70519319b59ca55d511c5b44ff8c299cbe93c572 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Wed, 11 Jan 2017 22:01:15 -0400 Subject: [PATCH] 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 --- lib/query.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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(); -- 2.26.2