lib: Update database schema doc for ghost messages

This describes the structure of ghost mail documents.  Ghost messages
are not yet implemented.
This commit is contained in:
Austin Clements 2014-10-23 08:30:34 -04:00 committed by David Bremner
parent 1cdb96d3c4
commit d9f5da00bb

View file

@ -50,8 +50,8 @@ typedef struct {
/* Here's the current schema for our database (for NOTMUCH_DATABASE_VERSION): /* Here's the current schema for our database (for NOTMUCH_DATABASE_VERSION):
* *
* We currently have two different types of documents (mail and * We currently have three different types of documents (mail, ghost,
* directory) and also some metadata. * and directory) and also some metadata.
* *
* Mail document * Mail document
* ------------- * -------------
@ -109,6 +109,15 @@ typedef struct {
* *
* The data portion of a mail document is empty. * The data portion of a mail document is empty.
* *
* Ghost mail document [if NOTMUCH_FEATURE_GHOSTS]
* -----------------------------------------------
* A ghost mail document is like a mail document, but where we don't
* have the message content. These are used to track thread reference
* information for messages we haven't received.
*
* A ghost mail document has type: ghost; id and thread fields that
* are identical to the mail document fields; and a MESSAGE_ID value.
*
* Directory document * Directory document
* ------------------ * ------------------
* A directory document is used by a client of the notmuch library to * A directory document is used by a client of the notmuch library to
@ -172,6 +181,13 @@ typedef struct {
* generated is 1 and the value will be * generated is 1 and the value will be
* incremented for each thread ID. * incremented for each thread ID.
* *
* Obsolete metadata
* -----------------
*
* If ! NOTMUCH_FEATURE_GHOSTS, there are no ghost mail documents.
* Instead, the database has the following additional database
* metadata:
*
* thread_id_* A pre-allocated thread ID for a particular * thread_id_* A pre-allocated thread ID for a particular
* message. This is actually an arbitrarily large * message. This is actually an arbitrarily large
* family of metadata name. Any particular name is * family of metadata name. Any particular name is