Release Overview for 1.4.6
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
MSet::snippet()
: We were only escaping output for HTML/XML in some cases, which would potentially allow HTML to be injected into output (this has been assigned CVE-2018-0499).
- Now supports building using MSVC using the standard build system. MSVC 2015 or later is required for decent C++11 support. Both 32- and 64-bit builds are now supported.
- API classes now support C++11 move semantics when using a compiler which we are confident supports them.
- Added Indonesian stemming algorithm and stopword list.
- Fix glass freelist bug when changes to a new database which didn't modify the
termlist table were committed. In this corner case, a block which had been
allocated to be the root block in the termlist table was leaked. This was
largely harmless, except that it was detected by
Database::check()
and caused it to report an error. Reported by Antoine Beaupré and David Bremner.
- Fix glass freelist bug with
cancel_transaction()
. The freelist wasn't reset to how it was before the transaction, resulting in leaked blocks. This was largely harmless, except that it was detected byDatabase::check()
and caused it to report an error.
- Improve the glass backend's per-term wdf upper bound for terms which occur in more than one document, which will tend to allow matches to short-cut sooner and so complete faster.
- The installed
xapian-config
script is now cleaned up by removing code to handle use before installation. This extra code contained build paths which meant the build wasn't bit-for-bit reproducible unless the same build directory name was used.
xapian-delve
now defaults to escaping document values it outputs, as they can contain binary data.
Java Bindings
- Fix leak in binary
std::string
typemaps, which are use for document values and serialised data.
Python Bindings
- Now support building with sphinx >= 1.7 (while still working with < 1.7).
Omega
- When indexing HTML check for the HTML5 doctype or legacy doctype declaration and use default charset UTF-8 if either is present. Previously we always used ISO-8859-1, which is correct for older HTML versions, but not for HTML5.
- scriptindex:
- Deprecate allowing spaces around
=
in scripts. This was never documented as supported, and leads to a missing argument quietly swallowing the next action rather than using an empty value or giving an error.
- New action
hextobin
which converts a hex string to a binary string.
- New actions
parsedate
andvaluepacked
which assist adding date values for sorting and date range filtering.
- New OmegaScript commands:
$sort
: does a string sort on anOmegaScript
list, withu
(unique) andr
(reverse) options.
$cond
: multi-way conditional inspired by LISP's COND, which provides a neater way to write a cascade of$if
checks.
$switch
: multi-way conditional which provides an even neater way to write a cascade of$if{$eq{X,VALUE1},$if{$eq{X,VALUE2},...}}
.
$subdb
and$subid
: report the subdatabase name and the docid in that subdatabase.
$termprefix
and$unprefix
: expose the existing code inside omega for splitting up a term.
Last modified
6 years ago
Last modified on 07/02/18 07:31:42
Note:
See TracWiki
for help on using the wiki.