Your problem: the example sucks ;) If the query searches for a tag you also have in exclude_tags (in your case: spam) the exclude gets ignored. Change your query to just "is:inbox" and magically "spam" really gets excluded. However it is better to create fresh query objects for each new query. I remember there are operations on query objects that are destructive. That's why users of the notmuch API usually create seperate queriy objects for counting messages/threads and getting the results. On Wed, 31 Aug 2016 10:23:59 +0200, Lucas <luc.lists@gmail.com> wrote: > Dear list members, > > I think I found a bug or at least undocumented behaviour in the notmuch > library. I would like to report this here. Originally I found the bug > in the python library but I attached a c program that shows the same > behaviour. I am running notmuch version 0.22.1 from the Arch Linux > repositories. > > The setup: > 1. chose a query string, e.g. "is:inbox or is:spam" > 2. chose a tag to exclude that is matched by the query, e.g. "spam" > 3. open the database > 4. create a query > 5. check the message or thread count any number of times > 6. exclude the tag from the query > 7. check the message or thread count any number of times > > The result: > - In step 5 the result stays the same if I repeatedly call > notmuch_query_count_messages_st or query.count_messages. > - In step 7 the count is different between the first call and all > subsequent calls. But neither seems correct to me. I always get the > same number as in step 5 for the first call and 0 afterwards. > > Expected result: > - subsequent calls to notmuch_query_count_messages_st or > query.count_messages should yield the same result > - the exclusion should change the count to the actual amount (for > "is:inbox or is:spam" I get 891 and for a plain "is:inbox" I get 58, > which never shows up in step 7) > > Attached you can find a python and a c program that exhibit this > behaviour. Please compile the c program with > > cc -DDB_PATH=\"/path/to/your/mail\" -lnotmuch test.c > > My question: > Is this documented somewhere? Is it actually a bug or is it already > fixed in a newer version? > > Thank you for developing notmuch! > > Lucas > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > https://notmuchmail.org/mailman/listinfo/notmuch > > --