From: Carl Worth Date: Mon, 21 Dec 2009 23:12:52 +0000 (-0800) Subject: database: Add new find_doc_ids_for_term interface. X-Git-Tag: 0.1~188 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=44a74912c78526c1942a101a8172206a32885425;p=notmuch.git database: Add new find_doc_ids_for_term interface. The existing find_doc_ids function is convenient when the caller doesn't want to be bothered constructing a term. But when the caller *does* have the term already, that interface is just wasteful. So we export a lower-level interface that maps a pre-constructed term to a document-ID iterators. --- diff --git a/lib/database.cc b/lib/database.cc index 5d300732..cd3346fd 100644 --- a/lib/database.cc +++ b/lib/database.cc @@ -213,6 +213,17 @@ notmuch_status_to_string (notmuch_status_t status) } } +static void +find_doc_ids_for_term (notmuch_database_t *notmuch, + const char *term, + Xapian::PostingIterator *begin, + Xapian::PostingIterator *end) +{ + *begin = notmuch->xapian_db->postlist_begin (term); + + *end = notmuch->xapian_db->postlist_end (term); +} + static void find_doc_ids (notmuch_database_t *notmuch, const char *prefix_name, @@ -220,15 +231,12 @@ find_doc_ids (notmuch_database_t *notmuch, Xapian::PostingIterator *begin, Xapian::PostingIterator *end) { - Xapian::PostingIterator i; char *term; term = talloc_asprintf (notmuch, "%s%s", _find_prefix (prefix_name), value); - *begin = notmuch->xapian_db->postlist_begin (term); - - *end = notmuch->xapian_db->postlist_end (term); + find_doc_ids_for_term (notmuch, term, begin, end); talloc_free (term); }