aboutsummaryrefslogtreecommitdiffhomepage
path: root/database.cc
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-10-24 22:49:35 -0700
committerGravatar Carl Worth <cworth@cworth.org>2009-10-24 22:57:47 -0700
commit65a272832e75a5bc8fbbc3e00ce25ae861787cce (patch)
tree65d1b83aae8aff31b7fa8c340151f9141ccc363d /database.cc
parent0aa355cc8fb46ae049052a913c2f2ab89ccba23c (diff)
Invent our own prefix values.
We're now dropping all pretense of keeping the database directly compatible with sup's current xapian backend. (But perhaps someone might write a new nothmuch backend for sup in the future.) In coming up with the prefix values here, I tried to follow the conventions of http://xapian.org/docs/omega/termprefixes.html as closely as makes sense, (with some domain translation from "web" to "email archive").
Diffstat (limited to 'database.cc')
-rw-r--r--database.cc31
1 files changed, 20 insertions, 11 deletions
diff --git a/database.cc b/database.cc
index 5b594c02..928e91ba 100644
--- a/database.cc
+++ b/database.cc
@@ -30,26 +30,35 @@ using namespace std;
#define ARRAY_SIZE(arr) (sizeof (arr) / sizeof (arr[0]))
-/* These prefix values are specifically chosen to be compatible
- * with sup, (http://sup.rubyforge.org), written by
- * William Morgan <wmorgan-sup@masanjin.net>, and released
- * under the GNU GPL v2.
- */
-
typedef struct {
const char *name;
const char *prefix;
} prefix_t;
+/* With these prefix values we follow the conventions published here:
+ *
+ * http://xapian.org/docs/omega/termprefixes.html
+ *
+ * as much as makes sense. Note that I took some liberty in matching
+ * the reserved prefix values to notmuch concepts, (for example, 'G'
+ * is documented as "newsGroup (or similar entity - e.g. a web forum
+ * name)", for which I think the thread is the closest analogue in
+ * notmuch. This in spite of the fact that we will eventually be
+ * storing mailing-list messages where 'G' for "mailing list name"
+ * might be even a closer analogue. I'm treating the single-character
+ * prefixes preferentially for core notmuch concepts (which will be
+ * nearly universal to all mail messages).
+ */
+
prefix_t BOOLEAN_PREFIX_INTERNAL[] = {
- { "type", "K" },
- { "thread", "H" },
- { "ref", "R" },
- { "timestamp", "KTS" },
+ { "type", "T" },
+ { "thread", "G" },
+ { "ref", "XREFERENCE" },
+ { "timestamp", "XTIMESTAMP" },
};
prefix_t BOOLEAN_PREFIX_EXTERNAL[] = {
- { "tag", "L" },
+ { "tag", "K" },
{ "id", "Q" }
};