mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
Add internal functions to search for alternate doc types
Publicly we are only exposing the non-ghost documents (of "type" "mail"). But internally we might want to inspect the ghost messages as well. This changeset adds two new private interfaces to queries to recover information about alternate document types.
This commit is contained in:
parent
604d1e0977
commit
011fc41d4d
2 changed files with 27 additions and 2 deletions
|
@ -477,6 +477,17 @@ void
|
||||||
_notmuch_doc_id_set_remove (notmuch_doc_id_set_t *doc_ids,
|
_notmuch_doc_id_set_remove (notmuch_doc_id_set_t *doc_ids,
|
||||||
unsigned int doc_id);
|
unsigned int doc_id);
|
||||||
|
|
||||||
|
/* querying xapian documents by type (e.g. "mail" or "ghost"): */
|
||||||
|
notmuch_status_t
|
||||||
|
_notmuch_query_search_documents (notmuch_query_t *query,
|
||||||
|
const char *type,
|
||||||
|
notmuch_messages_t **out);
|
||||||
|
|
||||||
|
notmuch_status_t
|
||||||
|
_notmuch_query_count_documents (notmuch_query_t *query,
|
||||||
|
const char *type,
|
||||||
|
unsigned *count_out);
|
||||||
|
|
||||||
/* message.cc */
|
/* message.cc */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
18
lib/query.cc
18
lib/query.cc
|
@ -186,6 +186,14 @@ notmuch_query_search_messages (notmuch_query_t *query)
|
||||||
notmuch_status_t
|
notmuch_status_t
|
||||||
notmuch_query_search_messages_st (notmuch_query_t *query,
|
notmuch_query_search_messages_st (notmuch_query_t *query,
|
||||||
notmuch_messages_t **out)
|
notmuch_messages_t **out)
|
||||||
|
{
|
||||||
|
return _notmuch_query_search_documents (query, "mail", out);
|
||||||
|
}
|
||||||
|
|
||||||
|
notmuch_status_t
|
||||||
|
_notmuch_query_search_documents (notmuch_query_t *query,
|
||||||
|
const char *type,
|
||||||
|
notmuch_messages_t **out)
|
||||||
{
|
{
|
||||||
notmuch_database_t *notmuch = query->notmuch;
|
notmuch_database_t *notmuch = query->notmuch;
|
||||||
const char *query_string = query->query_string;
|
const char *query_string = query->query_string;
|
||||||
|
@ -208,7 +216,7 @@ notmuch_query_search_messages_st (notmuch_query_t *query,
|
||||||
Xapian::Enquire enquire (*notmuch->xapian_db);
|
Xapian::Enquire enquire (*notmuch->xapian_db);
|
||||||
Xapian::Query mail_query (talloc_asprintf (query, "%s%s",
|
Xapian::Query mail_query (talloc_asprintf (query, "%s%s",
|
||||||
_find_prefix ("type"),
|
_find_prefix ("type"),
|
||||||
"mail"));
|
type));
|
||||||
Xapian::Query string_query, final_query, exclude_query;
|
Xapian::Query string_query, final_query, exclude_query;
|
||||||
Xapian::MSet mset;
|
Xapian::MSet mset;
|
||||||
Xapian::MSetIterator iterator;
|
Xapian::MSetIterator iterator;
|
||||||
|
@ -553,6 +561,12 @@ notmuch_query_count_messages (notmuch_query_t *query)
|
||||||
|
|
||||||
notmuch_status_t
|
notmuch_status_t
|
||||||
notmuch_query_count_messages_st (notmuch_query_t *query, unsigned *count_out)
|
notmuch_query_count_messages_st (notmuch_query_t *query, unsigned *count_out)
|
||||||
|
{
|
||||||
|
return _notmuch_query_count_documents (query, "mail", count_out);
|
||||||
|
}
|
||||||
|
|
||||||
|
notmuch_status_t
|
||||||
|
_notmuch_query_count_documents (notmuch_query_t *query, const char *type, unsigned *count_out)
|
||||||
{
|
{
|
||||||
notmuch_database_t *notmuch = query->notmuch;
|
notmuch_database_t *notmuch = query->notmuch;
|
||||||
const char *query_string = query->query_string;
|
const char *query_string = query->query_string;
|
||||||
|
@ -562,7 +576,7 @@ notmuch_query_count_messages_st (notmuch_query_t *query, unsigned *count_out)
|
||||||
Xapian::Enquire enquire (*notmuch->xapian_db);
|
Xapian::Enquire enquire (*notmuch->xapian_db);
|
||||||
Xapian::Query mail_query (talloc_asprintf (query, "%s%s",
|
Xapian::Query mail_query (talloc_asprintf (query, "%s%s",
|
||||||
_find_prefix ("type"),
|
_find_prefix ("type"),
|
||||||
"mail"));
|
type));
|
||||||
Xapian::Query string_query, final_query, exclude_query;
|
Xapian::Query string_query, final_query, exclude_query;
|
||||||
Xapian::MSet mset;
|
Xapian::MSet mset;
|
||||||
unsigned int flags = (Xapian::QueryParser::FLAG_BOOLEAN |
|
unsigned int flags = (Xapian::QueryParser::FLAG_BOOLEAN |
|
||||||
|
|
Loading…
Reference in a new issue