<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/message.cc, branch debian/0.29-2</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.29-2</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=debian%2F0.29-2'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2019-05-29T11:14:44Z</updated>
<entry>
<title>indexing: record protected subject when indexing cleartext</title>
<updated>2019-05-29T11:14:44Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2019-05-27T22:40:28Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=5c3a44681f2fffbd3a7d76e424c134a82470ddd2'/>
<id>urn:sha1:5c3a44681f2fffbd3a7d76e424c134a82470ddd2</id>
<content type='text'>
When indexing the cleartext of an encrypted message, record any
protected subject in the database, which should make it findable and
visible in search.

Signed-off-by: Daniel Kahn Gillmor &lt;dkg@fifthhorseman.net&gt;
</content>
</entry>
<entry>
<title>lib: support user prefix names in term generation</title>
<updated>2019-05-25T10:17:27Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2019-02-26T01:57:40Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=75bdce79527571c12c5de0c630747d6262b73fbd'/>
<id>urn:sha1:75bdce79527571c12c5de0c630747d6262b73fbd</id>
<content type='text'>
This should not change the indexing process yet as nothing calls
_notmuch_message_gen_terms with a user prefix name. On the other hand,
it should not break anything either.

_notmuch_database_prefix does a linear walk of the list of (built-in)
prefixes, followed by a logarithmic time search of the list of user
prefixes. The latter is probably not really noticable.
</content>
</entry>
<entry>
<title>n_m_remove_indexed_terms: reduce number of Xapian API calls.</title>
<updated>2019-05-23T11:00:56Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2019-04-16T01:46:16Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=97939170b3e8b31f88520932aa20bf1b98e469c3'/>
<id>urn:sha1:97939170b3e8b31f88520932aa20bf1b98e469c3</id>
<content type='text'>
Previously this functioned scanned every term attached to a given
Xapian document. It turns out we know how to read only the terms we
need to preserve (and we might have already done so). This commit
replaces many calls to Xapian::Document::remove_term with one call to
::clear_terms, and a (typically much smaller) number of calls to
::add_term. Roughly speaking this is based on the assumption that most
messages have more text than they have tags.

According to the performance test suite, this yields a roughly 40%
speedup on "notmuch reindex '*'"
</content>
</entry>
<entry>
<title>lib: add 'body:' field, stop indexing headers twice.</title>
<updated>2019-04-17T11:48:16Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2019-03-19T00:39:21Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=319dd95ebbd841320e269d34e67a824876f8426a'/>
<id>urn:sha1:319dd95ebbd841320e269d34e67a824876f8426a</id>
<content type='text'>
The new `body:` field (in Xapian terms) or prefix (in slightly
sloppier notmuch) terms allows matching terms that occur only in the
body.

Unprefixed query terms should continue to match anywhere (header or
body) in the message.

This follows a suggestion of Olly Betts to use the facility (since
Xapian 1.0.4) to add the same field with multiple prefixes. The double
indexing of previous versions is thus replaced with a query time
expension of unprefixed query terms to the various prefixed
equivalent.

Reindexing will be needed for 'body:' searches to work correctly;
otherwise they will also match messages where the term occur in
headers (demonstrated by the new tests in T530-upgrade.sh)
</content>
</entry>
<entry>
<title>lib: calculate message depth in thread</title>
<updated>2018-09-06T11:07:13Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2018-08-30T11:29:08Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=0a7181dd163babefaefa9988ed51dc66c892eb3e'/>
<id>urn:sha1:0a7181dd163babefaefa9988ed51dc66c892eb3e</id>
<content type='text'>
This will be used in reparenting messages without useful in-reply-to,
but with useful references
</content>
</entry>
<entry>
<title>lib: read reference terms into message struct.</title>
<updated>2018-09-06T11:07:12Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2018-08-30T11:29:05Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d0b844b358f7bb7bc7c6f152223577efcebfc89b'/>
<id>urn:sha1:d0b844b358f7bb7bc7c6f152223577efcebfc89b</id>
<content type='text'>
The plan is to use these in resolving threads.
</content>
</entry>
<entry>
<title>lib/thread: sort sibling messages by date</title>
<updated>2018-09-06T11:07:12Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2018-08-30T11:29:04Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=9b568e73e1afc211306d18dac3d27df4a07a0fdd'/>
<id>urn:sha1:9b568e73e1afc211306d18dac3d27df4a07a0fdd</id>
<content type='text'>
For non-root messages, this should not should anything currently, as
the messages are already added in date order. In the future we will
add some non-root messages in a second pass out of order and the
sorting will be useful. It does fix the order of multiple
root-messages (although it is overkill for that).
</content>
</entry>
<entry>
<title>lib: make notmuch_message_get_database() take a const notmuch_message_t*</title>
<updated>2018-05-26T14:32:01Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2018-05-11T06:57:54Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6a9f26b4a04e20529203938a99658516876c67f3'/>
<id>urn:sha1:6a9f26b4a04e20529203938a99658516876c67f3</id>
<content type='text'>
This is technically an API change, but it is not an ABI change, and
it's merely a statement that limits what the library can do.

This is in parallel to notmuch_query_get_database(), which also takes
a const pointer.
</content>
</entry>
<entry>
<title>lib: expose notmuch_message_get_database()</title>
<updated>2018-05-26T14:30:32Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2018-05-11T06:57:52Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=9088db76d89264b733f6b45e776d8952da237921'/>
<id>urn:sha1:9088db76d89264b733f6b45e776d8952da237921</id>
<content type='text'>
We've had _notmuch_message_database() internally for a while, and it's
useful.  It turns out to be useful on the other side of the library
interface as well (i'll use it later in this series for "notmuch
show"), so we expose it publicly now.
</content>
</entry>
<entry>
<title>lib: define specialized get_thread_id for use in thread subquery</title>
<updated>2018-05-07T11:42:53Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2018-01-28T02:50:42Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f0131af6c59704e29d58eb74ed5e4bc298455272'/>
<id>urn:sha1:f0131af6c59704e29d58eb74ed5e4bc298455272</id>
<content type='text'>
The observation is that we are only using the messages to get there
thread_id, which is kindof a pessimal access pattern for the current
notmuch_message_get_thread_id
</content>
</entry>
</feed>
