<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/message.cc, branch 0.32</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.32</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.32'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2021-04-18T12:50:36Z</updated>
<entry>
<title>lib: directly traverse postlists in _n_message_delete</title>
<updated>2021-04-18T12:50:36Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-04-16T12:00:39Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=9ad19e4454ff98342a6c0ec5a7e44c8c516e6fcd'/>
<id>urn:sha1:9ad19e4454ff98342a6c0ec5a7e44c8c516e6fcd</id>
<content type='text'>
This is intended to fix the slow behaviour of "notmuch new" (and possibly
"notmuch reindex") when large numbers of files are deleted.

The underlying issue [1] seems to be the Xapian glass backend spending
a large amount of time in db.has_positions when running queries with
large-ish amounts of unflushed changes.

This commit removes two uses of Xapian queries [2], and replaces them with
an approximation of what Xapian would do after optimizing the
queries. This avoids the calls to has_positions (which are in any case
un-needed because we are only using boolean terms here).

[1] Thanks to "andres" on IRC for narrowing down the performance
bottleneck.

[2] Thanks to Olly Betts of Xapian fame for talking me a through a fix
that does not require people to update Xapian.
</content>
</entry>
<entry>
<title>lib: support splitting mail from database location.</title>
<updated>2021-03-20T10:39:12Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-12-31T22:20:31Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e823d05ae6dc920d4fc9abf774c3d2575d891d7b'/>
<id>urn:sha1:e823d05ae6dc920d4fc9abf774c3d2575d891d7b</id>
<content type='text'>
Introduce a new configuration value for the mail root, and use it to
locate mail messages in preference to the database.path (which
previously implied the mail messages were also in this location.

Initially only a subset of the CLI is tested in a split
configuration. Further changes will be needed for the remainder of the
CLI to work in split configurations.
</content>
</entry>
<entry>
<title>lib: publish API for notmuch_database_reopen</title>
<updated>2021-03-18T11:03:36Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-03-14T14:01:57Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1121299905e2b2684d7cc56ec35c26c3a012783e'/>
<id>urn:sha1:1121299905e2b2684d7cc56ec35c26c3a012783e</id>
<content type='text'>
Include the (currently unused) mode argument which will specify which
mode to re-open the database in. Functionality and docs to be
finalized in a followup commit.
</content>
</entry>
<entry>
<title>lib: run uncrustify</title>
<updated>2021-03-13T12:45:34Z</updated>
<author>
<name>uncrustify</name>
<email>david@tethera.net</email>
</author>
<published>2021-03-13T12:45:34Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=8aeba1228ace947c1b689ae6ae08db5d53755917'/>
<id>urn:sha1:8aeba1228ace947c1b689ae6ae08db5d53755917</id>
<content type='text'>
This is the result of running

     $ uncrustify --replace --config ../devel/uncrustify.cfg *.c *.h *.cc

in the lib directory
</content>
</entry>
<entry>
<title>lib: replace use of static_cast for writable databases</title>
<updated>2020-07-28T11:47:58Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-26T23:31:36Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a09293793f43b93b7008dd361b192199ad528fca'/>
<id>urn:sha1:a09293793f43b93b7008dd361b192199ad528fca</id>
<content type='text'>
static_cast is a bit tricky to understand and error prone, so add a
second pointer to (potentially the same) Xapian database object that
we know has the right subclass.
</content>
</entry>
<entry>
<title>lib: encapsulate the use of notmuch_database_t field 'mode'</title>
<updated>2020-07-28T11:47:58Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-26T23:31:35Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d7d4c729ab3b74eaaebe64cb8c7383b0ea06cec0'/>
<id>urn:sha1:d7d4c729ab3b74eaaebe64cb8c7383b0ea06cec0</id>
<content type='text'>
The plan is to change the underlying representation.
</content>
</entry>
<entry>
<title>lib: fix exception messages for n_m_message_*</title>
<updated>2020-07-22T22:52:55Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-22T11:19:28Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e9867b818b75216427c7190f67354959dfb914db'/>
<id>urn:sha1:e9867b818b75216427c7190f67354959dfb914db</id>
<content type='text'>
The original generic handler had an extra '%s' in the format
string. Update tests that failed to catch this because the template to
print status strings checked 'stat', which was not set.
</content>
</entry>
<entry>
<title>lib: fix return value for n_m_reindex</title>
<updated>2020-07-20T11:54:42Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-09T00:17:09Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=765ca7bc08f83a3c0f9ebffe58dab03634e45f37'/>
<id>urn:sha1:765ca7bc08f83a3c0f9ebffe58dab03634e45f37</id>
<content type='text'>
Also update the documentation for the behaviour of n_m_get_thread_id
that this fix relies on.
</content>
</entry>
<entry>
<title>lib: handle xapian exception in n_m_remove_all_tags</title>
<updated>2020-07-20T11:54:42Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-09T00:17:04Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a2b90dc084c0224e56c1e63773048545788c7ad4'/>
<id>urn:sha1:a2b90dc084c0224e56c1e63773048545788c7ad4</id>
<content type='text'>
At least the exception we already catch should be reported properly.
</content>
</entry>
<entry>
<title>lib: add notmuch_message_has_maildir_flag_st</title>
<updated>2020-07-20T11:54:42Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-09T00:17:01Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b7572ceb143773a988a4852ac3b7c85254009d0e'/>
<id>urn:sha1:b7572ceb143773a988a4852ac3b7c85254009d0e</id>
<content type='text'>
Initially the new function is mainly tested indirectly via the
wrapper.
</content>
</entry>
</feed>
