diff options
| author | David Bremner <david@tethera.net> | 2021-08-24 08:17:32 -0700 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2021-09-04 17:07:19 -0700 |
| commit | 4083fd8bec7a34cf9c6a722b7dd511e0d31712f6 (patch) | |
| tree | 9948f0a63e7a4a79718a747bd84112795f7e0f1b /lib/database-private.h | |
| parent | b3bbaf1bc27d79b8191d296998f695be5be3146a (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.h | 16 |
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 |
