X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fdatabase-private.h;h=9d1dabf109625896363b21e9c417dafd7d5d95e6;hb=8a3f86f2f9b53d34e001537b113628ceba20a02d;hp=727b1d616f248f6aa3c5662985e0f69048a3c700;hpb=523d2b50fcaae90cbe09975c1f1bc652ff521ec6;p=notmuch diff --git a/lib/database-private.h b/lib/database-private.h index 727b1d61..9d1dabf1 100644 --- a/lib/database-private.h +++ b/lib/database-private.h @@ -108,6 +108,12 @@ enum _notmuch_features { * * Introduced: version 3. */ NOTMUCH_FEATURE_LAST_MOD = 1 << 6, + + /* If set, unprefixed terms are stored only for the message body, + * not for headers. + * + * Introduced: version 3. */ + NOTMUCH_FEATURE_UNPREFIX_BODY_ONLY = 1 << 7, }; /* In C++, a named enum is its own type, so define bitwise operators @@ -179,14 +185,14 @@ operator&(notmuch_field_flag_t a, notmuch_field_flag_t b) Xapian::QueryParser::FLAG_PURE_NOT) struct _notmuch_database { - notmuch_bool_t exception_reported; + bool exception_reported; char *path; notmuch_database_mode_t mode; int atomic_nesting; - /* TRUE if changes have been made in this atomic section */ - notmuch_bool_t atomic_dirty; + /* true if changes have been made in this atomic section */ + bool atomic_dirty; Xapian::Database *xapian_db; /* Bit mask of features used by this database. This is a @@ -215,6 +221,11 @@ struct _notmuch_database { Xapian::ValueRangeProcessor *value_range_processor; Xapian::ValueRangeProcessor *date_range_processor; Xapian::ValueRangeProcessor *last_mod_range_processor; + + /* XXX it's slightly gross to use two parallel string->string maps + * here, but at least they are small */ + notmuch_string_map_t *user_prefix; + notmuch_string_map_t *user_header; }; /* Prior to database version 3, features were implied by the database @@ -246,4 +257,10 @@ _notmuch_database_get_terms_with_prefix (void *ctx, Xapian::TermIterator &i, Xapian::TermIterator &end, const char *prefix); +void +_notmuch_database_find_doc_ids (notmuch_database_t *notmuch, + const char *prefix_name, + const char *value, + Xapian::PostingIterator *begin, + Xapian::PostingIterator *end); #endif