<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib/database.cc, branch 0.24_rc1</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.24_rc1</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.24_rc1'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2017-03-03T21:46:48Z</updated>
<entry>
<title>lib: add mid: as a synonym for id:</title>
<updated>2017-03-03T21:46:48Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-02-27T02:34:21Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6cb1c617a70466c4d8acc67cb70254e5b8385f88'/>
<id>urn:sha1:6cb1c617a70466c4d8acc67cb70254e5b8385f88</id>
<content type='text'>
mid: is the url scheme suggested by URL 2392. We also plan to
introduce more flexible searches for mid: than are possible with
id: (in order not to break assumptions about the special behaviour of
id:, e.g. identifying at most one message).
</content>
</entry>
<entry>
<title>lib: regexp matching in 'subject' and 'from'</title>
<updated>2017-03-03T21:46:48Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-02-27T02:34:20Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=55524bb063c95ae51a1762eb0b1aacce6ca49223'/>
<id>urn:sha1:55524bb063c95ae51a1762eb0b1aacce6ca49223</id>
<content type='text'>
the idea is that you can run

% notmuch search subject:/&lt;your-favourite-regexp&gt;/
% notmuch search from:/&lt;your-favourite-regexp&gt;/

or

% notmuch search subject:"your usual phrase search"
% notmuch search from:"usual phrase search"

This feature is only available with recent Xapian, specifically
support for field processors is needed.

It should work with bindings, since it extends the query parser.

This is easy to extend for other value slots, but currently the only
value slots are date, message_id, from, subject, and last_mod. Date is
already searchable;  message_id is left for a followup commit.

This was originally written by Austin Clements, and ported to Xapian
field processors (from Austin's custom query parser) by yours truly.
</content>
</entry>
<entry>
<title>lib: create field processors from prefix table</title>
<updated>2017-03-03T11:15:13Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-02-27T02:34:19Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=31b8ce4558de69860c95bf319a0a162316dce6c6'/>
<id>urn:sha1:31b8ce4558de69860c95bf319a0a162316dce6c6</id>
<content type='text'>
This is a bit more code than hardcoding the two existing field
processors, but it should make it easy to add more.
</content>
</entry>
<entry>
<title>lib: add _notmuch_database_reopen</title>
<updated>2017-02-26T01:09:17Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-02-24T01:38:24Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e17a914b77230d942b36639c261c345849fe9d52'/>
<id>urn:sha1:e17a914b77230d942b36639c261c345849fe9d52</id>
<content type='text'>
The main expected use is to recover from a Xapian::DatabaseChanged
exception.
</content>
</entry>
<entry>
<title>Merge branch 'release'</title>
<updated>2017-02-23T13:08:15Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-02-23T13:08:15Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e0e8586fc72763571f9eafeb831c7bc79a15273d'/>
<id>urn:sha1:e0e8586fc72763571f9eafeb831c7bc79a15273d</id>
<content type='text'>
Merge in g_hash_table read-after-free fix
</content>
</entry>
<entry>
<title>lib: fix g_hash_table related read-after-free bug</title>
<updated>2017-02-22T10:28:03Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-02-22T10:17:47Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4e649d000b9d3764aea98cb0e1120947d7f76f3d'/>
<id>urn:sha1:4e649d000b9d3764aea98cb0e1120947d7f76f3d</id>
<content type='text'>
The two g_hash_table functions (insert, add) have different behaviour
with respect to existing keys. g_hash_table_insert frees the new key,
while g_hash_table_add (which is really g_hash_table_replace in
disguise) frees the existing key. With this change 'ref' is live until
the end of the function (assuming single-threaded access to
'hash'). We can't guarantee it will continue to be live in the
future (i.e. there may be a future key duplication) so we copy it with
the allocation context passed to parse_references (in practice this is
the notmuch_message_t object whose parents we are finding).

Thanks to Tomi for the simpler approach to the problem based on
reading the fine glib manual.
</content>
</entry>
<entry>
<title>lib: Let Xapian manage the memory for FieldProcessors</title>
<updated>2017-02-19T02:18:06Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-02-17T03:07:50Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=0e037c34dd4b7eb9be96e62e0ee18260291de1b2'/>
<id>urn:sha1:0e037c34dd4b7eb9be96e62e0ee18260291de1b2</id>
<content type='text'>
It turns out this is exactly what release() is for; Xapian will
deallocate the objects when it's done with them.
</content>
</entry>
<entry>
<title>lib: merge internal prefix tables</title>
<updated>2017-02-19T02:17:39Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-02-17T03:07:49Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e30fa4182fbae7b302d1e90de9f36a8d08a47c1b'/>
<id>urn:sha1:e30fa4182fbae7b302d1e90de9f36a8d08a47c1b</id>
<content type='text'>
Replace multiple tables with some flags in a single table. This makes
the code in notmuch_database_open_verbose a bit shorter, and it should
also make it easier to add other options to fields, e.g. regexp
searching.
</content>
</entry>
<entry>
<title>lib: replace deprecated xapian call 'flush()' with 'commit()'</title>
<updated>2016-10-25T21:13:52Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2016-10-05T11:34:33Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=7f07a3f0edd225a2d07086251d60d87d41c87ef5'/>
<id>urn:sha1:7f07a3f0edd225a2d07086251d60d87d41c87ef5</id>
<content type='text'>
This will make notmuch incompatible with Xapian before 1.1.0, which is
more than 6 years old this point.
</content>
</entry>
<entry>
<title>require xapian &gt;= 1.2.6</title>
<updated>2016-10-07T01:45:46Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2016-10-05T00:35:23Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=af8903df34647d9456e8f3fe26a164959969b451'/>
<id>urn:sha1:af8903df34647d9456e8f3fe26a164959969b451</id>
<content type='text'>
It seems that no-one tried to compile without Xapian compact support
since March of 2015, since that's when I introduced a syntax error in
that branch of the ifdef.

Given the choice of maintaining this underused branch of code, or
bumping the Xapian dependency to a version from 2011, it seems
reasonable to do the latter.
</content>
</entry>
</feed>
