<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/database.cc, branch 0.31.2</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.31.2</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.31.2'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2020-07-28T11:47:58Z</updated>
<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: drop two gratuitous assignments to database 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:34Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=c73d510f965cddf4cf45f9895c45fb818519e200'/>
<id>urn:sha1:c73d510f965cddf4cf45f9895c45fb818519e200</id>
<content type='text'>
I'm not sure what the point of modifying that right before destroying
the object is. In a future commit I want to remove that element of the
object, so simplify that task.
</content>
</entry>
<entry>
<title>lib: rename _n_d_create to _n_d_find_or_create</title>
<updated>2020-07-22T22:52:55Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-19T10:36:47Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=ce360ce4c99597946949317aa40892536c9ebc05'/>
<id>urn:sha1:ce360ce4c99597946949317aa40892536c9ebc05</id>
<content type='text'>
The error message and name were confusing when called in some "read
only" context.
</content>
</entry>
<entry>
<title>lib/n_d_needs_upgrade: handle error return from n_d_get_version</title>
<updated>2020-07-22T22:52:55Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-16T22:28:22Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f25fc8e2115fc0fa6fa2a6d1cf3ed2747e163886'/>
<id>urn:sha1:f25fc8e2115fc0fa6fa2a6d1cf3ed2747e163886</id>
<content type='text'>
Also clarify documentation of error return from n_d_needs_upgrade.
</content>
</entry>
<entry>
<title>lib/n_d_get_version: catch exceptions and clarify the API</title>
<updated>2020-07-22T22:52:55Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-14T22:31:10Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=ab456541924dcb1e1c6d6c7ba1781011e3453f27'/>
<id>urn:sha1:ab456541924dcb1e1c6d6c7ba1781011e3453f27</id>
<content type='text'>
notmuch_database_get_version previously returned 0 on some errors, but
did not document this. Luckily 0 is not a valid database version.
</content>
</entry>
<entry>
<title>lib: move deallocation of memory from n_d_close to n_d_destroy</title>
<updated>2020-07-22T22:52:55Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-14T11:25:28Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=095d3d7134f5668b96cf1d70997d3f110b03c898'/>
<id>urn:sha1:095d3d7134f5668b96cf1d70997d3f110b03c898</id>
<content type='text'>
In order to mimic the "best effort" API of Xapian to provide
information from a closed database when possible, do not
destroy the Xapian database object too early.

Because the pointer to a Xapian database is no longer nulled on close,
introduce a flag to track whether the notmuch database is open or not.
</content>
</entry>
<entry>
<title>lib: migrate from Xapian ValueRangeProcessor to RangeProcessor</title>
<updated>2020-07-11T20:20:09Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-07T10:56:46Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b90d852a2fb377d5b7db4ab2ac389964f8c0c3b3'/>
<id>urn:sha1:b90d852a2fb377d5b7db4ab2ac389964f8c0c3b3</id>
<content type='text'>
This will be mandatory as of Xapian 1.5.  The API is also more
consistent with the FieldProcessor API, which helps code re-use a bit.

Note that this switches to using the built-in Xapian support for
prefixes on ranges (i.e. deleted code at beginning of
ParseTimeRangeProcessor::operator(), added prefix to constructor).

Another side effect of the migration is that we are generating smaller
queries, using one OP_VALUE_RANGE instead of an AND of two OP_VALUE_*
queries.
</content>
</entry>
<entry>
<title>lib: migrate to post Xapian 1.3.4 compact support</title>
<updated>2020-07-11T20:20:09Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2020-07-07T10:56:45Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a1b7cc834bf559184113c837f7511125db18a1aa'/>
<id>urn:sha1:a1b7cc834bf559184113c837f7511125db18a1aa</id>
<content type='text'>
The old API was deprecated in Xapian 1.3.4 and (will be) removed in 1.5.0
</content>
</entry>
<entry>
<title>build: drop support for xapian versions less than 1.4</title>
<updated>2020-04-24T00:28:45Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2020-04-21T21:07:29Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=00cdfe10717020423870fdaf56e973db9aba9f5a'/>
<id>urn:sha1:00cdfe10717020423870fdaf56e973db9aba9f5a</id>
<content type='text'>
Xapian 1.4 is over 3 years old now (1.4.0 released 2016-06-24),
and 1.2 has been deprecated in Notmuch version 0.27 (2018-06-13).

Xapian 1.4 supports compaction, field processors and retry locking;
conditionals checking compaction and field processors were removed
but user may want to disable retry locking at configure time so it
is kept.
</content>
</entry>
</feed>
