From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 9142F431FDC for ; Sat, 26 Jul 2014 20:53:18 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -2.3 X-Spam-Level: X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZnTeD+wYeUMx for ; Sat, 26 Jul 2014 20:53:12 -0700 (PDT) Received: from dmz-mailsec-scanner-7.mit.edu (dmz-mailsec-scanner-7.mit.edu [18.7.68.36]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 013FB431FC3 for ; Sat, 26 Jul 2014 20:53:06 -0700 (PDT) X-AuditID: 12074424-f79146d00000067c-fe-53d477a2e1a8 Received: from mailhub-auth-2.mit.edu ( [18.7.62.36]) (using TLS with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-7.mit.edu (Symantec Messaging Gateway) with SMTP id 83.C1.01660.2A774D35; Sat, 26 Jul 2014 23:53:06 -0400 (EDT) Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id s6R3r6Si014370 for ; Sat, 26 Jul 2014 23:53:06 -0400 Received: from drake.dyndns.org (216-15-114-40.c3-0.arl-ubr1.sbo-arl.ma.cable.rcn.com [216.15.114.40]) (authenticated bits=0) (User authenticated as amdragon@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id s6R3r5Hg016471 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT) for ; Sat, 26 Jul 2014 23:53:06 -0400 Received: from amthrax by drake.dyndns.org with local (Exim 4.77) (envelope-from ) id 1XBFW8-000515-5K for notmuch@notmuchmail.org; Sat, 26 Jul 2014 23:53:00 -0400 From: Austin Clements To: notmuch@notmuchmail.org Subject: [PATCH 0/14] Implement and use database "features" Date: Sat, 26 Jul 2014 23:52:39 -0400 Message-Id: <1406433173-19169-1-git-send-email-amdragon@mit.edu> X-Mailer: git-send-email 2.0.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRmVeSWpSXmKPExsUixG6noruo/EqwwaUfRhbXb85kdmD0eLbq FnMAYxSXTUpqTmZZapG+XQJXxvXd55gK5nFUzFx7irGB8S1bFyMnh4SAicTSEw+ZIGwxiQv3 1gPFuTiEBGYzSUw81QvlnGeU+DBxApTzi0li8fap7BDObkaJ3o1bGUH62QQ0JLbtXw5miwhI S+y8O5sVxBYWsJbY+LIPbB+LgKrEu03/wPbxCjhIHHlwkx1it5xEw41PbBMYeRYwMqxilE3J rdLNTczMKU5N1i1OTszLSy3SNdfLzSzRS00p3cQI9riLyg7G5kNKhxgFOBiVeHgz2K4EC7Em lhVX5h5ilORgUhLl3W8GFOJLyk+pzEgszogvKs1JLT7EKMHBrCTCK1QMlONNSaysSi3Kh0lJ c7AoifO+tbYKFhJITyxJzU5NLUgtgsnKcHAoSfDeKANqFCxKTU+tSMvMKUFIM3FwggznARq+ oRRkeHFBYm5xZjpE/hSjopQ47y+QhABIIqM0D64XFpGvGMWBXhHmZQVZwQOMZrjuV0CDmYAG s/hfBhlckoiQkmpg5Lvzts9X9tXyQ/cc6so2P+SbN2Wa+SOhl2Zb2+yaOwVF2SQEQ/TZW+Q9 Be6/muFf/2/lqp75ax45Gsx9I/nF6fUMRy3W+eaTa9oUv5uwB71M/HOCwWOamOz2sL477/WP 7nr63XLJzbQO3c/3QuZ+bGE+p7Uug2dDkbl0wcpdX539Ts8WEU7drcRSnJFoqMVcVJwIAE7x EcejAgAA X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jul 2014 03:53:18 -0000 This series is not as long as it looks! Patch 5 is the only one that's even slightly lengthy and almost any prefix of the series can be sensibly reviewed and pushed on its own. This series implements support for database features as described in my earlier proposal [1]. This should simplify future database schema changes and upgrades, enabling us to iterate faster on notmuch's core. It also substantially improves forward and backwards compatibility and improves user error reporting related to compatibility. Patches 9 and on make use of database features throughout the rest of libnotmuch to simplify and improve code, improve performance, and even make the libnotmuch interface safer and easier to use correctly. Once features support has been merged, it should be easy to implement various pending changes, including ghost messages [2] (I have this mostly implemented already) and ctimes [3]. [1] id:87sim8ob48.fsf@awakening.csail.mit.edu [2] id:20140421162058.GE25817@mit.edu [3] id:87wqexnqvb.fsf@ta.scs.stanford.edu