[PATCH 0/5] lib: make folder: prefix literal
Austin Clements
aclements at csail.mit.edu
Fri Jan 24 13:17:58 PST 2014
On Thu, 09 Jan 2014, Jani Nikula <jani at nikula.org> wrote:
> Hi all, this series makes the folder: search prefix literal, or switches
> it from a probabilistic prefix to a boolean prefix. With this, you have
> to give the path from the maildir root to the folder you want in full,
> including the maildir cur/new component, if any. Examples:
I strongly disagree with requiring the cur/new component. The cur/new
directory is an internal implementation detail of Maildir (and a rather
broken one at that) and no more a part of the "folder" of a piece of
mail than its final file name component. It's also the less obvious
user interface; if we require the cur/new component, we *will* get
people asking why their folder searches aren't working, but if we strip
the cur/new component, nobody will be surprised.
I think the question is not whether we should strip cur/new, but when.
We've already defined a "_filename_is_in_maildir" test in
lib/message.cc, which we depend on for flag sync. It's simple, but I
think this would be the right thing to use for consistency.
> folder:cur
> folder:foo/bar
> folder:""
>
> The last one can be used to refer to the maildir root (note that in
> shell you'll need quoting to pass the double quotes to xapian,
> folder:'""').
>
> The old probabilistic folder: prefix is problematic in a number of
> ways. It's not possible to refer to the maildir root. It does stemming,
> so "inboxing" would match "inbox" too. "cur" for the folder in maildir
> root would match all "cur" folders across the maildir hierarchy. Likely
> some others I forgot.
>
> WARNING! The change requires a database format version bump, and a
> database upgrade, which is automatically done on 'notmuch new'. The
> upgrade is irreversible if you want to try this on your database! A
> complete database rebuild is required for reverting the database format
> version. Make sure your backups are in order!
>
> The series includes some tests, including an initial upgrade test, along
> with a test database in the previous format version.
>
>
> BR,
> Jani.
>
>
>
> Jani Nikula (5):
> lib: make folder: prefix literal
> test: fix insert folder: searches
> test: fix test for literal folder: search
> test: add test database in format version 1
> test: add database upgrade test from format version 1
>
> lib/database.cc | 39 ++++++++-
> lib/message.cc | 154 +++++++++++++++++----------------
> lib/notmuch-private.h | 3 +
> test/insert | 10 +--
> test/notmuch-test | 1 +
> test/search-by-folder | 24 ++++-
> test/test-databases/README | 5 ++
> test/test-databases/database-v1.tar.gz | Bin 0 -> 252243 bytes
> test/upgrade | 25 ++++++
> 9 files changed, 174 insertions(+), 87 deletions(-)
> create mode 100644 test/test-databases/README
> create mode 100644 test/test-databases/database-v1.tar.gz
> create mode 100755 test/upgrade
>
> --
> 1.8.5.2
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
More information about the notmuch
mailing list