<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/database.cc, branch 0.1</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.1</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.1'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2010-03-10T00:03:58Z</updated>
<entry>
<title>Add is:&lt;tag&gt; as a synonym for tag:&lt;tag&gt; in search terms.</title>
<updated>2010-03-10T00:03:58Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-03-10T00:03:58Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e3046c688be7a28e7dcfbce5fa54074917fd9904'/>
<id>urn:sha1:e3046c688be7a28e7dcfbce5fa54074917fd9904</id>
<content type='text'>
I like the readability of this, it provides compatibility with people
trained in this syntax by sup, and it even saves one character.
</content>
</entry>
<entry>
<title>lib: Rename iterator functions to prepare for reverse iteration.</title>
<updated>2010-03-09T17:22:29Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-03-09T17:22:29Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4e5d2f22db290a830c0267f34b519c6138af00ed'/>
<id>urn:sha1:4e5d2f22db290a830c0267f34b519c6138af00ed</id>
<content type='text'>
We rename 'has_more' to 'valid' so that it can function whether
iterating in a forward or reverse direction. We also rename
'advance' to 'move_to_next' to setup parallel naming with
the proposed functions 'move_to_first', 'move_to_last', and
'move_to_previous'.
</content>
</entry>
<entry>
<title>Fix printf for when uint64_t != unsigned long long int</title>
<updated>2010-02-09T19:14:16Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-02-09T19:09:30Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e0a8dee8bcf0785325c07fff5a11e8ec494826db'/>
<id>urn:sha1:e0a8dee8bcf0785325c07fff5a11e8ec494826db</id>
<content type='text'>
Thanks to Michal Sojka &lt;sojkam1@fel.cvut.cz&gt; for pointing out the
correct fix, which I verified in the freely-available WG14/N1124 draft
(from the C99 working group) which is available here:

http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf
</content>
</entry>
<entry>
<title>Switch from random to sequential thread identifiers.</title>
<updated>2010-02-09T19:14:11Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-02-08T19:33:33Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=9439b217c349478b3603d5368f534acb1cd23974'/>
<id>urn:sha1:9439b217c349478b3603d5368f534acb1cd23974</id>
<content type='text'>
The sequential identifiers have the advantage of being guaranteed to
be unique (until we overflow a 64-bit unsigned integer), and also take
up half as much space in the "notmuch search" output (16 columns
rather than 32).

This change also has the side effect of fixing a bug where notmuch
could block on /dev/random at startup (waiting for some entropy to
appear). This bug was hit hard by the test suite, (which could easily
exhaust the available entropy on common systems---resulting in large
delays of the test suite).
</content>
</entry>
<entry>
<title>notmuch new: Print upgrade progress report as a percentage.</title>
<updated>2010-01-10T01:38:23Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-10T01:38:23Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=c340c1bd1140c0a1b7e0f24ef3ebac806f5fc3e6'/>
<id>urn:sha1:c340c1bd1140c0a1b7e0f24ef3ebac806f5fc3e6</id>
<content type='text'>
Previously we were printing a number of messages upgraded so far. The
original motivation for this was to accurately reflect the fact that
there are two passes, (so each message is processed twice and it's not
accurate to represent with a single count). But as it turns out, the
second pass takes zero time (relatively speaking) so we're still not
accounting for it.

If nothing else, the percentage-based reporting makes for a cleaner
API for the progress_notify function.
</content>
</entry>
<entry>
<title>lib: Split the database upgrade into two phases for safer operation.</title>
<updated>2010-01-09T19:13:12Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-09T19:13:12Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d12801c8b4d04a50fcb912b75017244fb09658e8'/>
<id>urn:sha1:d12801c8b4d04a50fcb912b75017244fb09658e8</id>
<content type='text'>
The first phase copies data from the old format to the new format
without deleting anything. This allows an old notmuch to still use the
database if the upgrade process gets interrupted. The second phase
performs the deletion (after updating the database version number). If
the second phase is interrupted, there will be some unused data in the
database, but it shouldn't cause any actual harm.
</content>
</entry>
<entry>
<title>lib: Delete stale timestamp documents during database upgrade.</title>
<updated>2010-01-08T17:57:09Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-08T17:52:25Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=5fe5e802ab3101a375ec1262770955904e169e47'/>
<id>urn:sha1:5fe5e802ab3101a375ec1262770955904e169e47</id>
<content type='text'>
Once we move the timestamp to the new directory document, we don't
need the old one anymore.
</content>
</entry>
<entry>
<title>notmuch new: Fix progress notification on database upgrade.</title>
<updated>2010-01-08T05:24:44Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-08T05:24:44Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1c86b48329c0cd69b4353accda4d28739ec1c0f3'/>
<id>urn:sha1:1c86b48329c0cd69b4353accda4d28739ec1c0f3</id>
<content type='text'>
This was firing continuously rather than just once per second as
intended.
</content>
</entry>
<entry>
<title>lib: Implement versioning in the database and provide upgrade function.</title>
<updated>2010-01-08T02:26:31Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-08T02:26:31Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=909f52bd8c4bdfa11cd3e75e3d0959e0293689bd'/>
<id>urn:sha1:909f52bd8c4bdfa11cd3e75e3d0959e0293689bd</id>
<content type='text'>
The recent support for renames in the database is our first time
(since notmuch has had more than a single user) that we have a
database format change. To support smooth upgrades we now encode a
database format version number in the Xapian metadata.

Going forward notmuch will emit a warning if used to read from a
database with a newer version than it natively supports, and will
refuse to write to a database with a newer version.

The library also provides functions to query the database format
version:

	notmuch_database_get_version

to ask if notmuch wants a newer version than that:

	notmuch_database_needs_upgrade

and a function to actually perform that upgrade:

	notmuch_database_upgrade
</content>
</entry>
<entry>
<title>Prefer READ_ONLY consistently over READONLY.</title>
<updated>2010-01-07T18:29:05Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-01-07T18:29:05Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=807aef93d3bf02884f7a37b44b894c11d9e1df58'/>
<id>urn:sha1:807aef93d3bf02884f7a37b44b894c11d9e1df58</id>
<content type='text'>
Previously we had NOTMUCH_DATABASE_MODE_READ_ONLY but
NOTMUCH_STATUS_READONLY_DATABASE which was ugly and confusing. Rename
the latter to NOTMUCH_STATUS_READ_ONLY_DATABASE for consistency.
</content>
</entry>
</feed>
