lib: Update database schema doc for ghost messages
authorAustin Clements <amdragon@mit.edu>
Thu, 23 Oct 2014 12:30:34 +0000 (08:30 -0400)
committerDavid Bremner <david@tethera.net>
Sat, 25 Oct 2014 17:26:03 +0000 (19:26 +0200)
This describes the structure of ghost mail documents.  Ghost messages
are not yet implemented.

lib/database.cc

index 8fd7fad6942edd7c8318aa30b1dcdc770fa80609..c641bcdef6d0f40c8268b98692ef2bc9262f2ad1 100644 (file)
@@ -50,8 +50,8 @@ typedef struct {
 
 /* Here's the current schema for our database (for NOTMUCH_DATABASE_VERSION):
  *
- * We currently have two different types of documents (mail and
- * directory) and also some metadata.
+ * We currently have three different types of documents (mail, ghost,
+ * and directory) and also some metadata.
  *
  * Mail document
  * -------------
@@ -109,6 +109,15 @@ typedef struct {
  *
  * 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
  * ------------------
  * 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
  *                     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
  *                     message. This is actually an arbitrarily large
  *                     family of metadata name. Any particular name is