X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Fdatabase-private.h;h=3fb10f7a408415fc7b22a1ce7cf34fa72cbba5b7;hp=6d6fa2c9f6bd56af79a7039d0da9d3694aa8b942;hb=cb08a2ee019e52dc29ba393d139fce8d7282c632;hpb=0de999aab5bd4cd44bc4ea76fd1d25172bd839ae diff --git a/lib/database-private.h b/lib/database-private.h index 6d6fa2c9..3fb10f7a 100644 --- a/lib/database-private.h +++ b/lib/database-private.h @@ -100,6 +100,12 @@ enum _notmuch_features { * * Introduced: version 3. */ NOTMUCH_FEATURE_INDEXED_MIMETYPES = 1 << 5, + + /* If set, messages store the revision number of the last + * modification in NOTMUCH_VALUE_LAST_MOD. + * + * Introduced: version 3. */ + NOTMUCH_FEATURE_LAST_MOD = 1 << 6, }; /* In C++, a named enum is its own type, so define bitwise operators @@ -145,6 +151,8 @@ struct _notmuch_database { notmuch_database_mode_t mode; int atomic_nesting; + /* TRUE if changes have been made in this atomic section */ + notmuch_bool_t atomic_dirty; Xapian::Database *xapian_db; /* Bit mask of features used by this database. This is a @@ -154,10 +162,21 @@ struct _notmuch_database { unsigned int last_doc_id; uint64_t last_thread_id; + /* error reporting; this value persists only until the + * next library call. May be NULL */ + char *status_string; + + /* Highest committed revision number. Modifications are recorded + * under a higher revision number, which can be generated with + * notmuch_database_new_revision. */ + unsigned long revision; + const char *uuid; + Xapian::QueryParser *query_parser; Xapian::TermGenerator *term_gen; Xapian::ValueRangeProcessor *value_range_processor; Xapian::ValueRangeProcessor *date_range_processor; + Xapian::ValueRangeProcessor *last_mod_range_processor; }; /* Prior to database version 3, features were implied by the database @@ -175,7 +194,8 @@ struct _notmuch_database { * will have it). */ #define NOTMUCH_FEATURES_CURRENT \ (NOTMUCH_FEATURE_FILE_TERMS | NOTMUCH_FEATURE_DIRECTORY_DOCS | \ - NOTMUCH_FEATURE_BOOL_FOLDER | NOTMUCH_FEATURE_GHOSTS) + NOTMUCH_FEATURE_BOOL_FOLDER | NOTMUCH_FEATURE_GHOSTS | \ + NOTMUCH_FEATURE_LAST_MOD) /* Return the list of terms from the given iterator matching a prefix. * The prefix will be stripped from the strings in the returned list.