<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/message.cc, branch 0.34</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.34</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.34'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2021-06-05T18:41:28Z</updated>
<entry>
<title>lib/message: use passed database for error handling</title>
<updated>2021-06-05T18:41:28Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-05-24T00:08:29Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=651a1b085be106aa9761c464429d88e34157fc2a'/>
<id>urn:sha1:651a1b085be106aa9761c464429d88e34157fc2a</id>
<content type='text'>
'message' should always be initialized if we reach here, but in case it
is not, we still want to be able to log an error message.
</content>
</entry>
<entry>
<title>lib/{open,message}: make some internal functions static</title>
<updated>2021-06-05T18:40:00Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-05-24T00:08:28Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b0a11dbc3822271e948f625ca326e86ff68f2e57'/>
<id>urn:sha1:b0a11dbc3822271e948f625ca326e86ff68f2e57</id>
<content type='text'>
They are not used outside their file, so being extern seems like an oversight
</content>
</entry>
<entry>
<title>lib/message: mark flag2tag as const</title>
<updated>2021-05-14T09:39:12Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2021-05-12T01:58:55Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b1b679858868d1a004b67a1a6eccb6c9d3f755e9'/>
<id>urn:sha1:b1b679858868d1a004b67a1a6eccb6c9d3f755e9</id>
<content type='text'>
This table is intended to be immutable
</content>
</entry>
<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>
</feed>
