Release Overview for 1.4.5
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.
xapian-core
- Add
Database::get_total_length()method. Previously you had to calculate this fromget_avlength()andget_doccount(), taking into account rounding issues. But even then you couldn't reliably get the exact value when total length is large since adouble's mantissa has more limited precision than anunsigned long long.
- Iterating of positions has been sped up, which means phrase matching is now faster (by a little over 5% in some simple tests).
- Fix use after free of
QueryOptimiserhint in certain cases involving multiple databases only some of which have positional information. This bug was introduced by changes in 1.4.3. Fixes #752, reported and analysed by Robert Stepanek.
- The inmemory backend now uses binary chop instead of linear search in all places where we're searching for a term or document - we weren't taking advantage of the sorted order everywhere.
xapian-core.pc: SpecifyLibs.privatewhich is needed for static linking, and probably also for shared libraries on platforms withoutDT_NEEDEDor something equivalent. Fixes #751, reported by Matthieu Gautier.
- On Hurd
F_GETLKcurrently always fails witherrnoset toENOSYS- treat this the same way asENOLCK. This fixes the testsuite on GNU Hurd, broken since the addition ofDatabase::locked()in 1.4.3.
- Add missing
#include "safesyssocket.h", needed on at least FreeBSD to getAF_INETandSOCK_STREAMdefined. Fixes https://github.com/xapian/xapian/pull/154, reported by Po-Chuan Hsieh (alternative fix applied was suggested by James Aylett).
Java
- Fix JNI code to be compatible with Java 6 and earlier, where the final
parameter of
SetByteArrayRegion()was notconst. This also seems to affect GCJ (though GCJ was removed in GCC 7). The incompatibility was introduced in 1.4.4.
Lua
- Support subclassing of
RangeProcessorin Lua.
Perl
- Add CLONE_SKIP to
RangeProcessorand subclases to avoid double deletion if the Perl threads module is in use.
- Keep references for set
RangeProcessorobjects, like how we do forValueRangeProcessorand various other functor objects.
PHP
- Keep references for set
RangeProcessorobjects, like how we do forValueRangeProcessorand various other functor objects.
PHP7
- Keep references for set
RangeProcessorobjects, like how we do forValueRangeProcessorand various other functor objects.
Python3
- Fix
make checkunder Python 3.2, which was broken in 1.4.4 because Python 3.2 doesn't support theu'foo'syntax.
Last modified
8 years ago
Last modified on 10/16/17 05:43:27
Note:
See TracWiki
for help on using the wiki.
