diff options
| author | Sebastian Spaeth <sebastian@sspaeth.de> | 2010-03-19 08:32:29 +0100 |
|---|---|---|
| committer | Sebastian Spaeth <sebastian@sspaeth.de> | 2010-03-19 08:32:29 +0100 |
| commit | cd19699e0d32eccc6481c0a3294b38c4fe0042e8 (patch) | |
| tree | 2e3229c7b2f847e2029a8c28f53d028d615663a1 | |
| parent | 350a6884de21e845c6574233df9510809c86cb71 (diff) | |
Implement Database.count_messages()
| -rw-r--r-- | cnotmuch/database.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/cnotmuch/database.py b/cnotmuch/database.py index 9c1be675..6a74f5d5 100644 --- a/cnotmuch/database.py +++ b/cnotmuch/database.py @@ -250,6 +250,11 @@ class Query(object): _search_messages = nmlib.notmuch_query_search_messages _search_messages.restype = c_void_p + + """notmuch_query_count_messages""" + _count_messages = _nmlib.notmuch_query_count_messages + _count_messages.restype = c_uint + def __init__(self, db, querystr): """ :param db: An open database which we derive the Query from. @@ -327,6 +332,24 @@ class Query(object): return Messages(msgs_p,self) + def count_messages(self): + """Estimate the number of messages matching the query + + This function performs a search and returns Xapian's best + guess as to the number of matching messages. It is somewhat + faster than performing :meth:`search_messages` and counting + the result with `len()`. Technically, it wraps the underlying + *notmuch_query_count_messages* function. + + :returns: :class:`Messages` + :exception: :exc:`NotmuchError` + + * STATUS.NOT_INITIALIZED if query is not inited + """ + if self._query is None: + raise NotmuchError(STATUS.NOT_INITIALIZED) + + return Query._count_messages(self._query) def __del__(self): """Close and free the Query""" |
