aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2017-01-11 22:01:15 -0400
committerDavid Bremner <david@tethera.net>2017-01-27 21:54:44 -0400
commit70519319b59ca55d511c5b44ff8c299cbe93c572 (patch)
tree643c6d083f9fdc8da3fd3bfa0cf3af72a42d4275
parent4a2ce7b5706b53cdd30c474d556f18d731c21bb5 (diff)
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
-rw-r--r--lib/query.cc3
1 files changed, 2 insertions, 1 deletions
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();