[PATCH] lib: optimize counting documents

David Bremner david at tethera.net
Wed Jan 11 18:01:15 PST 2017


>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.11.0



More information about the notmuch mailing list