<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/database.cc, branch debian/0.20.2-1</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.20.2-1</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.20.2-1'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2015-03-28T23:34:15Z</updated>
<entry>
<title>lib: eliminate fprintf from _notmuch_message_file_open</title>
<updated>2015-03-28T23:34:15Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2014-12-26T17:34:49Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=9d192da683b0656e37fc8d69c69698ca605926b3'/>
<id>urn:sha1:9d192da683b0656e37fc8d69c69698ca605926b3</id>
<content type='text'>
You may wonder why _notmuch_message_file_open_ctx has two parameters.
This is because we need sometime to use a ctx which is a
notmuch_message_t. While we could get the database from this, there is
no easy way in C to tell type we are getting.
</content>
</entry>
<entry>
<title>lib: replace almost all fprintfs in library with _n_d_log</title>
<updated>2015-03-28T23:34:15Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2014-12-26T16:25:35Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=736ac26407914425a9c94e86616225292cf716dd'/>
<id>urn:sha1:736ac26407914425a9c94e86616225292cf716dd</id>
<content type='text'>
This is not supposed to change any functionality from an end user
point of view. Note that it will eliminate some output to stderr. The
query debugging output is left as is; it doesn't really fit with the
current primitive logging model. The remaining "bad" fprintf will need
an internal API change.
</content>
</entry>
<entry>
<title>lib: add a log function with output to a string in notmuch_database_t</title>
<updated>2015-03-28T23:34:15Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2014-12-26T08:01:01Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b53e1a2da720e9a0efd815b92f0a54dc2f644ffc'/>
<id>urn:sha1:b53e1a2da720e9a0efd815b92f0a54dc2f644ffc</id>
<content type='text'>
In principle in the future this could do something fancier than
asprintf.
</content>
</entry>
<entry>
<title>lib: add "verbose" versions of notmuch_database_{open,create}</title>
<updated>2015-03-28T23:34:15Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2014-12-27T18:12:49Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=84d3b15d251623cbb66e5eca7ddb8d61aa596d33'/>
<id>urn:sha1:84d3b15d251623cbb66e5eca7ddb8d61aa596d33</id>
<content type='text'>
The compatibility wrapper ensures that clients calling
notmuch_database_open will receive consistent output for now.

The changes to notmuch-{new,search} and test/symbol-test are just to
make the test suite pass.

The use of IGNORE_RESULT is justified by two things. 1) I don't know
what else to do.  2) asprintf guarantees the output string is NULL if
an error occurs, so at least we are not passing garbage back.
</content>
</entry>
<entry>
<title>Add indexing for the mimetype term</title>
<updated>2015-01-24T15:47:59Z</updated>
<author>
<name>Todd</name>
<email>todd@electricoding.com</email>
</author>
<published>2015-01-22T23:43:38Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b04bc967f9837e9d451ef88c276c744aa55accaa'/>
<id>urn:sha1:b04bc967f9837e9d451ef88c276c744aa55accaa</id>
<content type='text'>
This adds the indexing support for the "mimetype:" term and removes
the broken test flag.  The indexing is probablistic in Xapian terms,
which gives a better experience to end users.  Standard content-types
of the form "foo/bar" are automatically interpreted as phrases in
Xapian due to the embedded slash.

Assume, separate messages with application/pdf and application/x-pdf
are indexed, then:

- mimetype:application/x-pdf will find only the application/x-pdf
- mimetype:application/pdf will find only the application/pdf
- mimetype:pdf will find both of the messages
</content>
</entry>
<entry>
<title>Add the NOTMUCH_FEATURE_INDEXED_MIMETYPES database feature</title>
<updated>2015-01-24T15:47:47Z</updated>
<author>
<name>Todd</name>
<email>todd@electricoding.com</email>
</author>
<published>2015-01-22T23:43:37Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=0de999aab5bd4cd44bc4ea76fd1d25172bd839ae'/>
<id>urn:sha1:0de999aab5bd4cd44bc4ea76fd1d25172bd839ae</id>
<content type='text'>
This feature will exist in all newly created databases, but there is
no upgrade provided for it.  If this flag exists, it indicates that
the database was created after the indexed MIME-types feature was
added.
</content>
</entry>
<entry>
<title>lib: Remove unnecessary thread linking steps when using ghost messages</title>
<updated>2014-10-25T17:46:19Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@mit.edu</email>
</author>
<published>2014-10-23T12:30:41Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=70f15b37fb226160acea591632b73ebe1e48809c'/>
<id>urn:sha1:70f15b37fb226160acea591632b73ebe1e48809c</id>
<content type='text'>
Previously, it was necessary to link new messages to children to work
around some (though not all) problems with the old metadata-based
approach to stored thread IDs.  With ghost messages, this is no longer
necessary, so don't bother with child linking when ghost messages are
in use.
</content>
</entry>
<entry>
<title>lib: Implement upgrade to ghost messages feature</title>
<updated>2014-10-25T17:30:08Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@mit.edu</email>
</author>
<published>2014-10-23T12:30:38Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d1e8c80b7239705b05bfa3e129c5de1c7099498a'/>
<id>urn:sha1:d1e8c80b7239705b05bfa3e129c5de1c7099498a</id>
<content type='text'>
Somehow this is the first upgrade pass that actually does *any* error
checking, so this also adds the bit of necessary infrastructure to
handle that.
</content>
</entry>
<entry>
<title>lib: Implement ghost-based thread linking</title>
<updated>2014-10-25T17:27:07Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@mit.edu</email>
</author>
<published>2014-10-23T12:30:37Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=58a4277d3b2ad88bc285f2dae998626b0aa73299'/>
<id>urn:sha1:58a4277d3b2ad88bc285f2dae998626b0aa73299</id>
<content type='text'>
This updates the thread linking code to use ghost messages instead of
user metadata to link messages into threads.

In contrast with the old approach, this is actually correct.
Previously, thread merging updated only the thread IDs of message
documents, not thread IDs stored in user metadata.  As originally
diagnosed by Mark Walters [1] and as demonstrated by the broken
T260-thread-order test, this can cause notmuch to fail to link
messages even though they're in the same thread.  In principle the old
approach could have been fixed by updating the user metadata thread
IDs as well, but these are not indexed and hence this would have
required a full scan of all stored thread IDs.  Ghost messages solve
this problem naturally by reusing the exact same thread ID and message
ID representation and indexing as regular messages.

Furthermore, thanks to this greater symmetry, ghost messages are also
algorithmically simpler.  We continue to support the old user metadata
format, so this patch can't delete any code, but when we do remove
support for the old format, several functions can simply be deleted.

[1] id:8738h7kv2q.fsf@qmul.ac.uk
</content>
</entry>
<entry>
<title>lib: Update database schema doc for ghost messages</title>
<updated>2014-10-25T17:26:03Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@mit.edu</email>
</author>
<published>2014-10-23T12:30:34Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d9f5da00bb7707f3244654b4e44df2284e3634be'/>
<id>urn:sha1:d9f5da00bb7707f3244654b4e44df2284e3634be</id>
<content type='text'>
This describes the structure of ghost mail documents.  Ghost messages
are not yet implemented.
</content>
</entry>
</feed>
