aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-12-21 15:11:32 -0800
committerGravatar Carl Worth <cworth@cworth.org>2010-01-06 10:32:06 -0800
commitd7e5f5827e21be7dd8993e5a877bdb73cdb64325 (patch)
treeef22b14cdc9b80994fd7cd909e4c3d22ed8c15b3 /lib
parent498edff50373785c9dcc889d0fb6bc9bfc13dfcb (diff)
database: Make find_unique_doc_id enforce uniqueness (for a debug build)
Catching any violation of this unique-ness constraint is very much in line with similar, existing INTERNAL_ERROR cases.
Diffstat (limited to 'lib')
-rw-r--r--lib/database.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/database.cc b/lib/database.cc
index 3ed19772..5d300732 100644
--- a/lib/database.cc
+++ b/lib/database.cc
@@ -246,10 +246,19 @@ find_unique_doc_id (notmuch_database_t *notmuch,
if (i == end) {
*doc_id = 0;
return NOTMUCH_PRIVATE_STATUS_NO_DOCUMENT_FOUND;
- } else {
- *doc_id = *i;
- return NOTMUCH_PRIVATE_STATUS_SUCCESS;
}
+
+ *doc_id = *i;
+
+#if DEBUG_DATABASE_SANITY
+ i++;
+
+ if (i != end)
+ INTERNAL_ERROR ("Term %s:%s is not unique as expected.\n",
+ prefix_name, value);
+#endif
+
+ return NOTMUCH_PRIVATE_STATUS_SUCCESS;
}
static Xapian::Document