Add the NOTMUCH_FEATURE_INDEXED_MIMETYPES database feature

This feature will exist in all newly created databases, but there is
no upgrade provided for it.  If this flag exists, it indicates that
the database was created after the indexed MIME-types feature was
added.
This commit is contained in:
Todd 2015-01-22 17:43:37 -06:00 committed by David Bremner
parent 0829bd4e5d
commit 0de999aab5
2 changed files with 20 additions and 5 deletions

View file

@ -92,6 +92,14 @@ enum _notmuch_features {
*
* Introduced: version 3. */
NOTMUCH_FEATURE_GHOSTS = 1 << 4,
/* If set, then the database was created after the introduction of
* indexed mime types. If unset, then the database may contain a
* mixture of messages with indexed and non-indexed mime types.
*
* Introduced: version 3. */
NOTMUCH_FEATURE_INDEXED_MIMETYPES = 1 << 5,
};
/* In C++, a named enum is its own type, so define bitwise operators
@ -161,9 +169,10 @@ struct _notmuch_database {
/* Current database features. If any of these are missing from a
* database, request an upgrade.
* NOTMUCH_FEATURE_FROM_SUBJECT_ID_VALUES is not included because
* upgrade doesn't currently introduce the feature (though brand new
* databases will have it). */
* NOTMUCH_FEATURE_FROM_SUBJECT_ID_VALUES and
* NOTMUCH_FEATURE_INDEXED_MIMETYPES are not included because upgrade
* doesn't currently introduce the features (though brand new databases
* will have it). */
#define NOTMUCH_FEATURES_CURRENT \
(NOTMUCH_FEATURE_FILE_TERMS | NOTMUCH_FEATURE_DIRECTORY_DOCS | \
NOTMUCH_FEATURE_BOOL_FOLDER | NOTMUCH_FEATURE_GHOSTS)

View file

@ -304,6 +304,11 @@ static const struct {
"exact folder:/path: search", "rw" },
{ NOTMUCH_FEATURE_GHOSTS,
"mail documents for missing messages", "w"},
/* Knowledge of the index mime-types are not required for reading
* a database because a reader will just be unable to query
* them. */
{ NOTMUCH_FEATURE_INDEXED_MIMETYPES,
"indexed MIME types", "w"},
};
const char *
@ -646,9 +651,10 @@ notmuch_database_create (const char *path, notmuch_database_t **database)
if (status)
goto DONE;
/* Upgrade doesn't add this feature to existing databases, but new
* databases have it. */
/* Upgrade doesn't add these feature to existing databases, but
* new databases have them. */
notmuch->features |= NOTMUCH_FEATURE_FROM_SUBJECT_ID_VALUES;
notmuch->features |= NOTMUCH_FEATURE_INDEXED_MIMETYPES;
status = notmuch_database_upgrade (notmuch, NULL, NULL);
if (status) {