aboutsummaryrefslogtreecommitdiff
path: root/lib/database-private.h
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2021-08-24 08:17:32 -0700
committerDavid Bremner <david@tethera.net>2021-09-04 17:07:19 -0700
commit4083fd8bec7a34cf9c6a722b7dd511e0d31712f6 (patch)
tree9948f0a63e7a4a79718a747bd84112795f7e0f1b /lib/database-private.h
parentb3bbaf1bc27d79b8191d296998f695be5be3146a (diff)
lib/thread-fp: factor out query expansion, rewrite in Xapian
It will be convenient not to have to construct a notmuch query object when parsing subqueries, so the commit rewrites the query expansion (currently only used for thread:{} queries) using only Xapian. As a bonus it seems about 15% faster in initial experiments.
Diffstat (limited to 'lib/database-private.h')
-rw-r--r--lib/database-private.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/database-private.h b/lib/database-private.h
index 7ee8e62d..9ee3b933 100644
--- a/lib/database-private.h
+++ b/lib/database-private.h
@@ -40,6 +40,10 @@
#include <xapian.h>
+#if HAVE_SFSEXP
+#include <sexp.h>
+#endif
+
/* Bit masks for _notmuch_database::features. Features are named,
* independent aspects of the database schema.
*
@@ -313,11 +317,21 @@ notmuch_status_t
_notmuch_sexp_string_to_xapian_query (notmuch_database_t *notmuch, const char *querystr,
Xapian::Query &output);
+notmuch_status_t
+_notmuch_query_expand (notmuch_database_t *notmuch, const char *field, Xapian::Query subquery,
+ Xapian::Query &output, std::string &msg);
+
/* regexp-fields.cc */
notmuch_status_t
_notmuch_regexp_to_query (notmuch_database_t *notmuch, Xapian::valueno slot, std::string field,
std::string regexp_str,
Xapian::Query &output, std::string &msg);
-#endif
+#if HAVE_SFSEXP
+/* parse-sexp.cc */
+notmuch_status_t
+_notmuch_sexp_string_to_xapian_query (notmuch_database_t *notmuch, const char *querystr,
+ Xapian::Query &output);
+#endif
+#endif
#endif