On Thu, 09 Jan 2014, Jani Nikula <jani@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@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch