Release Overview for 1.4.7
This page contains a high level description of the most notable changes in this release. For full details of user-visible changes, see the NEWS files in each module:
See also the full list of bug reports marked as fixed in this release.
Database::check(): Fix bogus error reports for documents with length zero due to a new check added in 1.4.6 that the doclength was between the stored upper and lower bounds, which failed to allow for the lower bound ignoring documents with length zero (since documents indexed only by boolean terms aren't involved in weighted searches). Reported by David Bremner.
Query: Use of
Query::MatchAllin multithreaded code causes problems because the reference counting gets messed up by concurrent updates. Document that
Query(string())should be used instead of
MatchAllin multithreaded code, and avoid using it in library code. Reported by Germán M. Bravo.
- Stemming algorithms added for Irish, Lithuanian, Nepali and Tamil.
- Merge Snowball compiler changes which improve code generation.
- Merge optimisations to the Arabic and Turkish stemmers.
- A long-lived cursor on a table in a
WritableDatabasecould get into an invalid state, which typically resulted in a
DatabaseCorruptErrorbeing thrown with the message:
Db block overwritten - are there multiple writers?
The bug is in code to rebuild the cursor when the underlying table changes in ways which require that, which is a fairly rare occurrence to start with, and only triggers when a block in the cursor has been released, reallocated, and we tried to load it in the cursor at the same level - the cursor wrongly assumes it has the current version of the block.
Reported with a reproducer by Sylvain Taverne. Confirmed by David Bremner as also fixing a problem in notmuch for which he hadn't managed to find a reduced reproducer.
- New OmegaScript
$uniquecommand. The existing
$uniqonly removes adjacent entries (like the Unix
uniqcommand) so to fully remove duplicates you need a sorted input. Sometimes it is desirable to remove duplicates from an unsorted list without changing the order of the entries which are left, so add
$uniqueto do that. If the list is sorted already, then
$uniqis more efficient.