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
QueryOptimiser
hint 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.private
which is needed for static linking, and probably also for shared libraries on platforms withoutDT_NEEDED
or something equivalent. Fixes #751, reported by Matthieu Gautier.
- On Hurd
F_GETLK
currently always fails witherrno
set 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_INET
andSOCK_STREAM
defined. 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
RangeProcessor
in Lua.
Perl
- Add CLONE_SKIP to
RangeProcessor
and subclases to avoid double deletion if the Perl threads module is in use.
- Keep references for set
RangeProcessor
objects, like how we do forValueRangeProcessor
and various other functor objects.
PHP
- Keep references for set
RangeProcessor
objects, like how we do forValueRangeProcessor
and various other functor objects.
PHP7
- Keep references for set
RangeProcessor
objects, like how we do forValueRangeProcessor
and various other functor objects.
Python3
- Fix
make check
under Python 3.2, which was broken in 1.4.4 because Python 3.2 doesn't support theu'foo'
syntax.
Last modified
7 years ago
Last modified on 10/16/17 05:43:27
Note:
See TracWiki
for help on using the wiki.