Release Overview for 1.4.11

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.


  • MSet::SNIPPET_CJK_NGRAM - new flag for use with MSet::snippet() to enable support for selecting and highlighting snippets which works with the QueryParser and TermGenerator FLAG_CJK_NGRAM flags. This mode can also be enabled by setting environment variable XAPIAN_CJK_NGRAM to a non-empty value. (There was nominally already support for XAPIAN_CJK_NGRAM in MSet::snippet(), but it didn't work usefully - the highlighting added was all empty start/end pairs at the end of the span of CJK characters containing the CJK ngram terms, which to the user would typically look like it was selecting the end of the text and not highlighting anything).
  • Deprecate XAPIAN_CJK_NGRAM environment variable. There are now flags which can be used instead in all cases, and there's sadly no portable thread-safe way to read an environment variable so checking environment variables is problematic in library code that may be used in multithreaded programs.


  • Extend detection of cases of OP_SYNONYM with disjoint subqueries (which means we don't need document length) which was added in 1.4.8 - we now detect when all subqueries are different terms, or when all subqueries are non-overlapping wildcards. The second case is what QueryParser produces for a wildcard or partial query with a query prefix which maps to more than one term prefix.

glass and chert backends

  • Handle an empty value slot lower bound gracefully. This shouldn't happen for a non-empty slot, but has been reported by a notmuch user so it seems there is (or perhaps was as the database was several years old) a way it can come about. We now check for this situation and set the smallest possible valid lower bound instead, so other code assuming a valid lower bound will work correctly. Reported by jb55.


  • Make MatchAll and MatchNothing readonly.


  • Fix access to already released memory during PHP module shutdown, which often didn't cause visible problems, but could result in segmentation faults, bus errors, etc.
  • Fix generated code to compile when using a ZTS-enabled build of PHP.
Last modified 5 years ago Last modified on 06/03/19 03:40:14
Note: See TracWiki for help on using the wiki.