X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fdatabase-private.h;h=293f2db42a31ff2cd0dbc73ff9775c53d8de85d5;hb=582f255aeba3998428fa489dc22c735bd0b88143;hp=2fb60f5ef3ac9e941ebf3112cae997872f143a47;hpb=0e037c34dd4b7eb9be96e62e0ee18260291de1b2;p=notmuch diff --git a/lib/database-private.h b/lib/database-private.h index 2fb60f5e..293f2db4 100644 --- a/lib/database-private.h +++ b/lib/database-private.h @@ -38,8 +38,6 @@ #include -#pragma GCC visibility push(hidden) - /* Bit masks for _notmuch_database::features. Features are named, * independent aspects of the database schema. * @@ -110,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 @@ -153,7 +157,8 @@ operator&=(_notmuch_features &a, _notmuch_features b) typedef enum notmuch_field_flags { NOTMUCH_FIELD_NO_FLAGS = 0, NOTMUCH_FIELD_EXTERNAL = 1 << 0, - NOTMUCH_FIELD_PROBABILISTIC = 1 << 1 + NOTMUCH_FIELD_PROBABILISTIC = 1 << 1, + NOTMUCH_FIELD_PROCESSOR = 1 << 2, } notmuch_field_flag_t; /* @@ -180,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 @@ -207,6 +212,10 @@ struct _notmuch_database { unsigned long revision; const char *uuid; + /* Keep track of the number of times the database has been re-opened + * (or other global invalidations of notmuch's caching) + */ + unsigned long view; Xapian::QueryParser *query_parser; Xapian::TermGenerator *term_gen; Xapian::ValueRangeProcessor *value_range_processor; @@ -243,6 +252,10 @@ _notmuch_database_get_terms_with_prefix (void *ctx, Xapian::TermIterator &i, Xapian::TermIterator &end, const char *prefix); -#pragma GCC visibility pop - +void +_notmuch_database_find_doc_ids (notmuch_database_t *notmuch, + const char *prefix_name, + const char *value, + Xapian::PostingIterator *begin, + Xapian::PostingIterator *end); #endif