#include <xapian.h>
-#pragma GCC visibility push(hidden)
-
/* Bit masks for _notmuch_database::features. Features are named,
* independent aspects of the database schema.
*
*
* 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
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;
/*
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
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;
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