Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 6861D431FBF for ; Sat, 7 Apr 2012 09:10:16 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0.201 X-Spam-Level: X-Spam-Status: No, score=0.201 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] 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 A1viM1wKMB2W for ; Sat, 7 Apr 2012 09:10:15 -0700 (PDT) Received: from mail-we0-f181.google.com (mail-we0-f181.google.com [74.125.82.181]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 32C87431FBC for ; Sat, 7 Apr 2012 09:10:15 -0700 (PDT) Received: by mail-we0-f181.google.com with SMTP id m13so2289308wer.26 for ; Sat, 07 Apr 2012 09:10:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=evWbal5TZwC83T81p5PIhFxgGHmqMjVz7PLu6Fut7js=; b=U+25Ssu3CtfQ3zGdH4A6nQE6WgQRz9jl21RPj297uNSMD0i/dhnc63BQDs3PndYppJ eBIsjmLZczEtd6QQmqNwfsFgVGynAHWT3/3fqwroHCbp+mcZEmX0hNreKn4kqGW6hnuv EIyy7SMfEvEr8RgC73WL7L78UpGGnnNNQ2EftTetz1tNR+NFWUDM8QrP9U9lsR4+h7WF 21ZAoL8zNuuvCNv88B8cEkXC1zgw8DqPLfk28sUrnlIX0P5WdK10AJoea4l8V54Yrx8E ZQEWx0zo862VyaMS1U333qi1cplRz9JkncVI8ojEfaMgVc7g/V8unkt48MoJC/kgPCvB qLIQ== Received: by 10.180.82.132 with SMTP id i4mr4086924wiy.12.1333815014833; Sat, 07 Apr 2012 09:10:14 -0700 (PDT) Received: from localhost (94.197.17.51.threembb.co.uk. [94.197.17.51]) by mx.google.com with ESMTPS id bx13sm15630097wib.10.2012.04.07.09.10.12 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 07 Apr 2012 09:10:14 -0700 (PDT) From: Mark Walters To: notmuch@notmuchmail.org Subject: [PATCH v4 1/6] lib: change default for notmuch_query_set_omit_excluded Date: Sat, 7 Apr 2012 17:10:03 +0100 Message-Id: <1333815008-24668-2-git-send-email-markwalters1009@gmail.com> X-Mailer: git-send-email 1.7.9.1 In-Reply-To: <1333815008-24668-1-git-send-email-markwalters1009@gmail.com> References: <1333815008-24668-1-git-send-email-markwalters1009@gmail.com> 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: Sat, 07 Apr 2012 16:10:16 -0000 --- lib/notmuch.h | 23 ++++++++++++++++++----- lib/query.cc | 10 +++++----- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/lib/notmuch.h b/lib/notmuch.h index babd208..673c423 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -449,12 +449,25 @@ typedef enum { const char * notmuch_query_get_query_string (notmuch_query_t *query); -/* Specify whether to results should omit the excluded results rather - * than just marking them excluded. This is useful for passing a - * notmuch_messages_t not containing the excluded messages to other - * functions. */ +/* Specify whether to omit excluded results or simply flag them. By + * default, this is set to TRUE. + * + * If this is TRUE, notmuch_query_search_messages will omit excluded + * messages from the results. notmuch_query_search_threads will omit + * threads that match only in excluded messages, but will include all + * messages in threads that match in at least one non-excluded + * message. + * + * The performance difference when calling + * notmuch_query_search_messages should be relatively small (and both + * should be very fast). However, in some cases, + * notmuch_query_search_threads is very much faster when omitting + * excluded messages as it does not need to construct the threads that + * only match in excluded messages. + */ + void -notmuch_query_set_omit_excluded_messages (notmuch_query_t *query, notmuch_bool_t omit); +notmuch_query_set_omit_excluded (notmuch_query_t *query, notmuch_bool_t omit_excluded); /* Specify the sorting desired for this query. */ void diff --git a/lib/query.cc b/lib/query.cc index 68ac1e4..e9c1a2d 100644 --- a/lib/query.cc +++ b/lib/query.cc @@ -28,7 +28,7 @@ struct _notmuch_query { const char *query_string; notmuch_sort_t sort; notmuch_string_list_t *exclude_terms; - notmuch_bool_t omit_excluded_messages; + notmuch_bool_t omit_excluded; }; typedef struct _notmuch_mset_messages { @@ -92,7 +92,7 @@ notmuch_query_create (notmuch_database_t *notmuch, query->exclude_terms = _notmuch_string_list_create (query); - query->omit_excluded_messages = FALSE; + query->omit_excluded = TRUE; return query; } @@ -104,9 +104,9 @@ notmuch_query_get_query_string (notmuch_query_t *query) } void -notmuch_query_set_omit_excluded_messages (notmuch_query_t *query, notmuch_bool_t omit) +notmuch_query_set_omit_excluded (notmuch_query_t *query, notmuch_bool_t omit_excluded) { - query->omit_excluded_messages = omit; + query->omit_excluded = omit_excluded; } void @@ -220,7 +220,7 @@ notmuch_query_search_messages (notmuch_query_t *query) if (query->exclude_terms) { exclude_query = _notmuch_exclude_tags (query, final_query); - if (query->omit_excluded_messages) + if (query->omit_excluded) final_query = Xapian::Query (Xapian::Query::OP_AND_NOT, final_query, exclude_query); else { -- 1.7.9.1