summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2009-10-24 22:49:35 -0700
committerCarl Worth <cworth@cworth.org>2009-10-24 22:57:47 -0700
commit65a272832e75a5bc8fbbc3e00ce25ae861787cce (patch)
tree65d1b83aae8aff31b7fa8c340151f9141ccc363d
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").
-rw-r--r--database.cc31
1 files changed, 20 insertions, 11 deletions
diff --git a/database.cc b/database.cc
index 5b594c0..928e91b 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" }
};