Bug: counting messages twice after excluding tags yields different results

David Bremner david at tethera.net
Wed Aug 31 18:16:43 PDT 2016


Franz Fellner <alpine.art.de at gmail.com> writes:

> On Wed, 31 Aug 2016 09:20:52 -0300, David Bremner <david at tethera.net> wrote:
>> Lucas Hoffmann <luc.lists at gmail.com> writes:
>> 
>> > Thank you Franz, sadly your reply did not convince me:
>> >
>> > Quoting Franz Fellner (2016-08-31 11:21:18)
>> >> Your problem: the example sucks ;)
>> >
>> > No, I must object :(
>> >
>> >> If the query searches for a tag you also have in exclude_tags (in your
>> >> case: spam) the exclude gets ignored.
>> >
>> > Is that documented?  Because it is not what I would expect.
>> 
>> Yes, it is documented in notmuch-config(1)
>
> And for "destructiveness" see the implementation in lib/query.cc _notmuch_exclude_tags:
> It replaces every matching tag in query_string and exclude_tags with an empty string ""
> in the exclude terms. This most likely results in <match_all_documents> which can be
> seen as a bug, if you want; removing would be better but also more expensive.

Maybe more programming effort, but I guess not more expensive in
performance? It is not clear that this is worth fixing, since the
destructiveness makes re-using queries inadvisable.  Are there any
non-destructive operations on queries (that it seems reasonable to
commit to being non-destructive)? Otherwise, I guess we could just add a
blanket warning to the API docs.

d



More information about the notmuch mailing list