Subject: CVS commit: pkgsrc/textproc/xapian
From: Amitai Schlair
Date: 2009-07-19 00:28:00
Message id: 20090718222800.5CA32175D0@cvs.netbsd.org

Log Message:
Update to 1.0.13. From the changelog:

API:
* Xapian::Document no longer ever stores empty values explicitly.  This
  wasn't intentional behaviour, and how this case was handled wasn't
  documented.  The amended behaviour is consistent with how user metadata
  is handled.  This change isn't observable using Document::get_value(),
  but can be noticed when iterating with Document::values_begin(), using
  Document::values_count(), or trying to delete the value with
  Document::remove_value().

matcher:
* If a query contains a MatchAll subquery, check for it before checking the
  other terms so that the loop which checks how many terms match can exit
  early if they all match.
* When an OR or ANY_MAYBE decayed to an AND, we were carefully swapping the
  children for maximum efficiency, but the condition was reversed so we were
  in fact making things worse.  This was noticed because it was resulting in
  the same query running faster when more results were asked for!
* Only build the termname to termfreq and weight map for the first subdatabase
  instead of rebuilding it for each one.  Also don't copy this map to return
  it.  This should speed up searches a little, especially those over multiple
  databases.
* If a submatcher fails but ErrorHandler tells us to continue without it, we
  just use a NULL pointer to stand in rather than allocating a special dummy
  place-holder object.
* Remove AndPostList, in favour of MultiAndPostList.  AndPostList was only used
  as a decay product (by AndMaybePostList and OrPostList), and doesn't appear
  to be any faster.  Removing it reduces CPU cache pressure, and is less code
  to maintain.
* Call check() instead of skip_to() on the optional branch of AND_MAYBE.

flint backend:
* Fix a bug in TermIterator::skip_to() over metadata keys.

remote backend:
* Fix xapian-tcpsrv --interface option to work on MacOS X (ticket#373).
* Fix typo which caused us to return the docid instead of the maximum weight
  a document from a remote match could return!  This could have led to wrong
  results when searching multiple databases with the remote backend, but
  probably usually didn't matter as with BM25 the weights are generally small
  (often all < 1) while docids are inevitably >= 1.

inmemory backend:
* The inmemory backend doesn't support iterating over metadata keys.  Trying
  to do so used to give an empty iteration, but has now been fixed to throw
  UnimplementedError (and this limitation has now been documented).

documentation:
* INSTALL: We no longer regularly test build with GCC 2.95.4 and we're raising
  the minimum GCC version required to 3.1 for Xapian 1.1.x.
* Document what passing maxitems=0 to Enquire::get_mset() does.
* docs/queryparser.html: Add examples of using a prefix on a phrase or
  subexpression.
* Correct doxygen comments for user metadata functions:
  Database::get_metadata() throw UnimplementedError but
  WritableDatabase::set_metadata() can.
* Document that Database::metadata_keys_begin() returns an end iterator if the
  backend doesn't support metadata.
* HACKING: Update the list of Debian/Ubuntu packages needed for a development
  environment.

Files:
RevisionActionfile
1.7modifypkgsrc/textproc/xapian/Makefile
1.4modifypkgsrc/textproc/xapian/distinfo