Release Overview for 1.2.1

This page contains a high level description of the most notable changes made for release 1.2.1. 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 1.2.1.

This release includes all changes from ReleaseOverview/1.0.21 which are relevant.


  • QueryParser: Add support for open-ended ranges (ticket#480).
  • Add new optional parameter to QueryParser::add_boolean_prefix() to allow the user to indicate a prefix isn't "exclusive" and that multiple instances should be combined with OP_AND rather than OP_OR. Fixes ticket#402. This change should also improve efficiency as it avoids copying the lists of prefixes and compares them more efficiently.
  • You can now specify a custom stemming algorithm by subclassing Xapian::StemImplementation. This is wrapped for the bindings, but currently has only been tested for Python. (ticket#448)
  • Fix replication bug: when multiple commits were made to the master database while a client was performing a full copy, the client would only apply the first changeset and then try to make the database live, but fail due to trying to set the wrong revision number.


  • Fix test harness issues on FreeBSD, GNU Hurd, and some other platforms.
  • Add a "soaktest" testsuite, intended to contain long-running tests with random data. Currently contains a single test which builds and runs random queries, checking that the results returned are consistent when asking for different result ranges.


  • OP_VALUE_RANGE and OP_VALUE_GE now use value streams directly which is much more efficient for chert (the default backend in 2.2.x). As an example, a range query testcase which previously took 29 seconds now takes 0.4 seconds (70 times faster). (ticket#432)

build system

  • Install headers under PREFIX/include not PREFIX/include/xapian. If you used XO_LIB_XAPIAN or xapian-config in your build system, the headers would still have been found.
  • Add check to configure that GCC actually supports visibility for the platform being built for, which fixes compiler warnings with platforms which don't (such as Mac OS X and mingw).


  • Make use of built-in UUID API on FreeBSD and NetBSD. (ticket#470)
  • Fix mingw build.
Last modified 4 years ago Last modified on 26/01/16 10:10:43