[PATCH 0/5] lib: make folder: prefix literal
authorJani Nikula <jani@nikula.org>
Thu, 9 Jan 2014 22:18:31 +0000 (00:18 +0200)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:58:54 +0000 (09:58 -0800)
61/999db2ceca6de86ecdf0e6895c7d8509ab4d9e [new file with mode: 0644]

diff --git a/61/999db2ceca6de86ecdf0e6895c7d8509ab4d9e b/61/999db2ceca6de86ecdf0e6895c7d8509ab4d9e
new file mode 100644 (file)
index 0000000..d7e544e
--- /dev/null
@@ -0,0 +1,121 @@
+Return-Path: <jani@nikula.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 1526C431FD0\r
+       for <notmuch@notmuchmail.org>; Thu,  9 Jan 2014 23:00:04 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id W0njaXu2CUrY for <notmuch@notmuchmail.org>;\r
+       Thu,  9 Jan 2014 22:59:56 -0800 (PST)\r
+Received: from mail-ea0-f172.google.com (mail-ea0-f172.google.com\r
+       [209.85.215.172]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
+       (No client certificate requested)\r
+       by olra.theworths.org (Postfix) with ESMTPS id 0F7A1429E35\r
+       for <notmuch@notmuchmail.org>; Thu,  9 Jan 2014 22:57:16 -0800 (PST)\r
+Received: by mail-ea0-f172.google.com with SMTP id q10so1538629ead.31\r
+       for <notmuch@notmuchmail.org>; Thu, 09 Jan 2014 22:51:48 -0800 (PST)\r
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+       d=1e100.net; s=20130820;\r
+       h=x-gm-message-state:from:to:cc:subject:date:message-id;\r
+       bh=WZ5G3IuyNPVQRRnej9T9uE9lwWDjyDHF6c1Lo2wvmkQ=;\r
+       b=UbmPiJyjpD13orTsWnDKorIebGG1YD9fp8+BMFp+EVwqMd6yIoMd2T7EFae8v6eNoH\r
+       szozY3/m76AnYotRxM9A/4wY8/P39i3qMvQCWdlM//8ef6zr3EzXhTlpVs7ozBbHf7qj\r
+       hnvxd6mK9U9/0+7lv5oCQNeR7kcvAg+OcpsDkBlh30sPTsigM/WUgCTq6XTOjrCk3PTX\r
+       1rzTFTqImFgbKLTc1yJYGPhmTiqkxOg31gTGZZkfMk66MnYv0Oa1ktpxSRxqihGyhq3o\r
+       XlDNVQtVRmvr2R++gqxWybE+PaLSKZLaVYsFwKU5XYGoRta9DQgGpy8s0xetGKhvbiB/\r
+       PNhg==\r
+X-Gm-Message-State:\r
+ ALoCoQmFGHS4MmluOcgL1VM6ex2UGXrjsBuf5AXE8v1T/YHJ3AfIfyXDq6wGfmUKgVm/KzF5DEL4\r
+X-Received: by 10.14.104.7 with SMTP id h7mr5472562eeg.95.1389305925969;\r
+       Thu, 09 Jan 2014 14:18:45 -0800 (PST)\r
+Received: from localhost (dsl-hkibrasgw2-58c36f-91.dhcp.inet.fi.\r
+       [88.195.111.91])\r
+       by mx.google.com with ESMTPSA id a45sm9378933eem.6.2014.01.09.14.18.43\r
+       for <multiple recipients>\r
+       (version=TLSv1.2 cipher=RC4-SHA bits=128/128);\r
+       Thu, 09 Jan 2014 14:18:45 -0800 (PST)\r
+From: Jani Nikula <jani@nikula.org>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH 0/5] lib: make folder: prefix literal\r
+Date: Fri, 10 Jan 2014 00:18:31 +0200\r
+Message-Id: <cover.1389304779.git.jani@nikula.org>\r
+X-Mailer: git-send-email 1.8.5.2\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Fri, 10 Jan 2014 07:00:04 -0000\r
+\r
+Hi all, this series makes the folder: search prefix literal, or switches\r
+it from a probabilistic prefix to a boolean prefix. With this, you have\r
+to give the path from the maildir root to the folder you want in full,\r
+including the maildir cur/new component, if any. Examples:\r
+\r
+folder:cur\r
+folder:foo/bar\r
+folder:""\r
+\r
+The last one can be used to refer to the maildir root (note that in\r
+shell you'll need quoting to pass the double quotes to xapian,\r
+folder:'""').\r
+\r
+The old probabilistic folder: prefix is problematic in a number of\r
+ways. It's not possible to refer to the maildir root. It does stemming,\r
+so "inboxing" would match "inbox" too. "cur" for the folder in maildir\r
+root would match all "cur" folders across the maildir hierarchy. Likely\r
+some others I forgot.\r
+\r
+WARNING! The change requires a database format version bump, and a\r
+database upgrade, which is automatically done on 'notmuch new'. The\r
+upgrade is irreversible if you want to try this on your database! A\r
+complete database rebuild is required for reverting the database format\r
+version. Make sure your backups are in order!\r
+\r
+The series includes some tests, including an initial upgrade test, along\r
+with a test database in the previous format version.\r
+\r
+\r
+BR,\r
+Jani.\r
+\r
+\r
+\r
+Jani Nikula (5):\r
+  lib: make folder: prefix literal\r
+  test: fix insert folder: searches\r
+  test: fix test for literal folder: search\r
+  test: add test database in format version 1\r
+  test: add database upgrade test from format version 1\r
+\r
+ lib/database.cc                        |  39 ++++++++-\r
+ lib/message.cc                         | 154 +++++++++++++++++----------------\r
+ lib/notmuch-private.h                  |   3 +\r
+ test/insert                            |  10 +--\r
+ test/notmuch-test                      |   1 +\r
+ test/search-by-folder                  |  24 ++++-\r
+ test/test-databases/README             |   5 ++\r
+ test/test-databases/database-v1.tar.gz | Bin 0 -> 252243 bytes\r
+ test/upgrade                           |  25 ++++++\r
+ 9 files changed, 174 insertions(+), 87 deletions(-)\r
+ create mode 100644 test/test-databases/README\r
+ create mode 100644 test/test-databases/database-v1.tar.gz\r
+ create mode 100755 test/upgrade\r
+\r
+-- \r
+1.8.5.2\r
+\r