From 65a272832e75a5bc8fbbc3e00ce25ae861787cce Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sat, 24 Oct 2009 22:49:35 -0700 Subject: [PATCH] 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"). --- database.cc | 31 ++++++++++++++++++++----------- 1 file 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 , 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" } }; -- 2.26.2