X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=faq.mdwn;h=92a2ef6ba9ffd1cf1f66492ebb021771c1bf52e9;hb=198a05f9711fca37ad8a9c3927ff92d0960c4498;hp=4646ef1a4cface205448bc4607127a2c5a2d1994;hpb=dfd4a6acd5ca705cdf000bbfd22464b5f17f7c7d;p=notmuch-wiki diff --git a/faq.mdwn b/faq.mdwn index 4646ef1..92a2ef6 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -27,11 +27,26 @@ See [[excluding]]. See help for `message-citation-line-format` for details. +## What are sexp queries? + +For the syntax of sexp queries, see [the manual +page](https://notmuchmail.org/doc/latest/man7/notmuch-sexp-queries.html). + +To see if your version of notmuch supports them, run + + $ notmuch config get built_with.sexp_queries + ## How do I search for messages that have no tags? -Unfortunately, there is no way to do this directly. +To do this directly, you need a recent notmuch compiled with sexp +queries (see above). You can then run -However, it's possible to accomplish this using two searches in shell. First, + $ notmuch search --query=sexp --output=messages '(not (tag *))' + +The same style of query should work for any prefix, even user defined +prefixes like `List` (see below). + +Otherwise, it's possible to accomplish this using two searches in shell. First, you need to query all tags in the database, and transform the result into a query that matches messages that have none of those tags: @@ -105,17 +120,17 @@ fixed in 1.4.7. Try reverting Xapian commit `093999529acc2f86900d91fed0c7f7af301ab94a`, e.g. with the following patch. -[[!format text """ -index 80e578b85..a47f14a68 100644 ---- a/xapian-core/backends/glass/glass_postlist.cc -+++ b/xapian-core/backends/glass/glass_postlist.cc -@@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_, - (void)need_pos; - if (term_.empty()) - RETURN(NULL); -- if (!this_db.get() || this_db->postlist_table.is_modified()) -+ if (!this_db.get() || this_db->postlist_table.is_writable()) - RETURN(NULL); - RETURN(new GlassPostList(this_db, term_, cursor->clone())); - } -"""]] + + index 80e578b85..a47f14a68 100644 + --- a/xapian-core/backends/glass/glass_postlist.cc + +++ b/xapian-core/backends/glass/glass_postlist.cc + @@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_, + (void)need_pos; + if (term_.empty()) + RETURN(NULL); + - if (!this_db.get() || this_db->postlist_table.is_modified()) + + if (!this_db.get() || this_db->postlist_table.is_writable()) + RETURN(NULL); + RETURN(new GlassPostList(this_db, term_, cursor->clone())); + } +