aboutsummaryrefslogtreecommitdiff
path: root/test/T650-regexp-query.sh
AgeCommit message (Collapse)Author
2022-03-19lib: do not phrase parse prefixed bracketed subexpressionsDavid Bremner
Since Xapian does not preserve quotes when passing the subquery to a field processor, we have to make a guess as to what the user intended. Here the added assumption is that a string surrounded by parens is not intended to be a phrase.
2022-03-19test: known broken tests for bracketed terms in subjectDavid Bremner
The heuristics in the field processor currently incorrectly trigger phrase parsing.
2020-04-23build: drop support for xapian versions less than 1.4Tomi Ollila
Xapian 1.4 is over 3 years old now (1.4.0 released 2016-06-24), and 1.2 has been deprecated in Notmuch version 0.27 (2018-06-13). Xapian 1.4 supports compaction, field processors and retry locking; conditionals checking compaction and field processors were removed but user may want to disable retry locking at configure time so it is kept.
2019-05-07tests: remove some redundant pre-cleanup of the corpus MAIL_DIRJameson Graef Rollins
add_email_corpus itself does an rm -rf $MAIL_DIR, so these are not necessary.
2019-03-28lib: use phrase search for anything not ending in '*'David Bremner
Anything that does not look like a wildcard should be safe to quote. This should fix the problem searching for xapian keywords.
2019-03-28test: add two known broken tests searching for xapian keywordsDavid Bremner
Thanks to plujon for pointing out this problem on IRC. The underlying issue is that the quotes are stripped before the field processors get the query string, and the heuristic for putting them back is not quite right.
2019-03-11Prepend regerror() messages with "regexp error: "Luis Ressel
The exact error messages returned by regerror() aren't standardized; relying on them isn't portable. Thus, add a a prefix to make clear that the subsequent message is a regexp parsing error, and only look for this prefix in the test suite, ignoring the rest of the message.
2017-10-20test: use $(dirname "$0") for sourcing test-lib.shJani Nikula
Don't assume the tests are always run from within the source tree.
2017-08-01cli/search: print total number of files matched in summary output.David Bremner
The structured output formats already have all of the filenames. This is an easy bit of UI change to make the multiple files visible.
2017-05-09lib: Add regexp expansion for for tags and pathsDavid Bremner
From a UI perspective this looks similar to what was already provided for from, subject, and mid, but the implementation is quite different. It uses the database's list of terms to construct a term based query equivalent to the passed regular expression.
2017-05-09lib: Add regexp searching for mid: prefixDavid Bremner
The bulk of the change is passing in the field options to the regexp field processor, so that we can properly handle the fallback (non-regexp case).
2017-03-29lib: handle empty string in regexp field processorsDavid Bremner
The non-field processor behaviour is is convert the corresponding queries into a search for the unprefixed terms. This yields pretty surprising results so I decided to generate a query that would match the terms (i.e. none with that prefix) generated for an empty header.
2017-03-29test: add known broken test for null from: and subject: queryDavid Bremner
These queries currently fail with field processors enabled because the code expects a non-empty string.
2017-03-24lib: only trigger phrase processing for regexp fields when neededDavid Bremner
The argument is that if the string passed to the field processor has no spaces, then the added quotes won't have any benefit except for disabling wildcards. But disabling wildcards doesn't seem very useful in the normal Xapian query parser, since they're stripped before generating terms anyway. It does mean that the query 'from:"foo*"' will not be precisely equivalent to 'from:foo' as it is for the non field-processor version.
2017-03-24test: add known broken tests wildcard search in from and subjectDavid Bremner
This was broken by the addition of regexp searching. The detection of wildcards is not currently done in the recursive call to parse_query, because of quoting issues.
2017-03-04lib: centralize query parsing, store results.David Bremner
The main goal is to prepare the way for non-destructive (or at least less destructive) exclude tag handling. It does this by having a pre-parsed query available for further processing. This also allows us to provide slightly more precise error messages.
2017-03-03lib: regexp matching in 'subject' and 'from'David Bremner
the idea is that you can run % notmuch search subject:/<your-favourite-regexp>/ % notmuch search from:/<your-favourite-regexp>/ or % notmuch search subject:"your usual phrase search" % notmuch search from:"usual phrase search" This feature is only available with recent Xapian, specifically support for field processors is needed. It should work with bindings, since it extends the query parser. This is easy to extend for other value slots, but currently the only value slots are date, message_id, from, subject, and last_mod. Date is already searchable; message_id is left for a followup commit. This was originally written by Austin Clements, and ported to Xapian field processors (from Austin's custom query parser) by yours truly.