forked from pool/xapian-core
Antonio Larrosa
b47c36aa2b
- update to 1.4.21: * Stop trying to check for incompatible C++ ABI between the compiler used to build xapian-core and the compiler used to build code using xapian-core. * Fix new warnings from GCC 12. * Avoid undefined value use when unpacking a key in a corrupted glass docdata table. We now skip further checks on the entry in this case. * Merge allocations in MSVC directory reading compatibility code so we can allocate in a single malloc() call. * Add accept() wrapper which checks an assumption that Microsoft's SOCKET type only actually holds 32 bit values even in 64 bit platforms and throws an exception if violated. * Eliminate a use of sprintf. * Squash some unhelpful MSVC deprecation warnings. * Declare dummy invalid parameter handler noexcept to fix a warning from MSVC. * Include <stdlib.h> in configure check for sys_errlist as that's where it is with mingw and MSVC. OBS-URL: https://build.opensuse.org/request/show/1007094 OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-core?expand=0&rev=101
1584 lines
84 KiB
Plaintext
1584 lines
84 KiB
Plaintext
-------------------------------------------------------------------
|
|
Thu Sep 29 19:24:49 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 1.4.21:
|
|
* Stop trying to check for incompatible C++ ABI between the compiler used to
|
|
build xapian-core and the compiler used to build code using xapian-core.
|
|
* Fix new warnings from GCC 12.
|
|
* Avoid undefined value use when unpacking a key in a corrupted glass docdata
|
|
table. We now skip further checks on the entry in this case.
|
|
* Merge allocations in MSVC directory reading compatibility code so we can
|
|
allocate in a single malloc() call.
|
|
* Add accept() wrapper which checks an assumption that Microsoft's SOCKET type
|
|
only actually holds 32 bit values even in 64 bit platforms and throws an
|
|
exception if violated.
|
|
* Eliminate a use of sprintf.
|
|
* Squash some unhelpful MSVC deprecation warnings.
|
|
* Declare dummy invalid parameter handler noexcept to fix a warning from MSVC.
|
|
* Include <stdlib.h> in configure check for sys_errlist as that's where it is
|
|
with mingw and MSVC.
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Jul 17 15:40:00 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 1.4.20:
|
|
* Throw DatabaseNotFoundError when the database directory doesn't exist or
|
|
when it doesn't contain a Xapian database. Patch from Germán Méndez Bravo
|
|
in https://github.com/xapian/xapian/pull/258
|
|
* Improve exception message for attempting to remove an empty term (the
|
|
exception type is still InvalidArgumentError). Reported by David Bremner.
|
|
* Optimise when a value range is a superset of the slot bounds but the value
|
|
slot frequency is not equal to the document count by replacing the lower
|
|
bound with an empty string to make the bounds check very cheap.
|
|
* Avoid creating a PostList tree for an empty shard. This avoids pointless
|
|
work in an uncommon case, but also by handling this up front the code in
|
|
PostList subclasses for query operators can assume the shard isn't empty
|
|
which simplifies the code in several places.
|
|
* Remove lingering handling for database backends without slot bounds since
|
|
all backends have been required to support these since 1.4.11.
|
|
* Fix collection frequency estimates for positional operators. This affects
|
|
the weighting of positional operators in subqueries of OP_SYNONYM with
|
|
weighting schemes which use the collection frequency.
|
|
* xapian-check: Test decompress data in the spelling and synonym tables.
|
|
We don't have structure checking for these tables, but we can at least fetch
|
|
each entry and check for decompression problems.
|
|
* Improve error if a block is detected as overwritten in WritableDatabase.
|
|
Drop "are there multiple writers?" as it's rarely a useful question to ask
|
|
since we started using fcntl() locking as it's now very hard to get multiple
|
|
concurrent writers on a database. Instead suggest running xapian-check,
|
|
which is probably the best next step for a user who hits this problem.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jan 19 21:10:03 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 1.4.19:
|
|
* New QueryParser::FLAG_NO_POSITIONS flag. With this flag enabled, any query
|
|
operations which would use positional information are replaced by the nearest
|
|
equivalent which doesn't (so phrase searches, NEAR and ADJ will result in
|
|
OP_AND). This is intended to replace the automatic conversion of OP_PHRASE,
|
|
etc to OP_AND when a database has no positional information, which will no
|
|
longer happen in the release series after 1.4.
|
|
* Give a compile error for code which adds a Database to WritableDatabase.
|
|
Prior to 1.4.19, this compiled and effectively created a "black-hole" shard
|
|
which quietly discarded any changes made to it.
|
|
In 1.4.19 it's still possible to perform this operation by assigning the
|
|
WritableDatabase to a Database first, which is harder to fix. This case
|
|
throws an exception on git master where it's easier to address.
|
|
* Fix TermIterator::skip_to() with sharded databases which sometimes was
|
|
failing to advance all the way to the requested term. Uncovered while
|
|
addressing warning from GCC's -Wduplicated-cond, reported by dcb in #816.
|
|
* Clamp edit distance to one less than the length of the word we've been asked
|
|
to correct, which makes the algorithm we use more efficient. We already
|
|
require suggestion to have at least one character in common, so the only
|
|
change to suggestions is we'll no longer suggest corrections which are
|
|
twice as long or longer even if the edit distance would allow it, which
|
|
seems like an improvement in itself.
|
|
* Minor optimisation expanding wildcards.
|
|
* PostingIterator::get_description(): For an all-docs iterator on a glass
|
|
database, get_description() would call get_docid() which isn't valid to
|
|
do once the iterator has reached the end.
|
|
* Expand allterms test coverage.
|
|
* Fetch wdf upper bound from postlist which avoids an extra postlist table
|
|
cursor seek per weighted query term, and also means we now use a per-shard
|
|
wdf upper bound for local shards which will in typically give a tighter
|
|
weight upper bound which will tend to make various other matcher
|
|
optimisations more effective. Eric Wong reported this speeds up a
|
|
particularly slow case from ~2 minutes to ~3 seconds.
|
|
* Avoid triggering a pointless maximum weight recalculation if an unweighted
|
|
child of a MultiAndPostList prunes.
|
|
* Only check if the database has positional information when the query
|
|
uses positional information. This should help improve notmuch delete
|
|
performance. Thanks to andreas on #notmuch for analysis of the problem.
|
|
* Optimise Glass::Inverter::has_positions(). Use const auto& instead of just
|
|
auto for the loop variables. Reported to be faster by andreas on #notmuch.
|
|
* Cache result of Glass::Inverter::has_positions() since calculating it is
|
|
potentially very expensive, while maintaining a cached answer is very cheap.
|
|
* Add missing closing parenthesis to reported remote prog context, which has
|
|
been missing since this code was first added over 20 years ago!
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jan 19 22:04:41 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 1.4.18:
|
|
* QueryParser::FLAG_ACCUMULATE: New flag. Previously the unstem and stoplist
|
|
data was always reset by a call to QueryParser::parse_query(), which makes
|
|
sense if you use the same QueryParser object to parse a series of independent
|
|
queries. If you're using the same QueryParser object to parse several fields
|
|
on the same query form, you may want to have the unstem and stoplist data
|
|
combined for all of them, in which case you can use this flag to prevent this
|
|
data from being reset.
|
|
|
|
* QueryParser::unstem_begin(): Eliminate unnecessary copying of the data.
|
|
|
|
* Fix typo in Swedish stopword list, syncing change made to Snowball by Daniel
|
|
Gómez Villanueva.
|
|
|
|
* Remove some French stop words with other meanings, syncing change made to
|
|
Snowball by PhilippeOuellet.
|
|
|
|
testsuite:
|
|
|
|
* Run testcase testlock4 using backend chert, not just using glass
|
|
|
|
* Skip testcase testlock4 on platforms that don't allow us to implement
|
|
Database::locked() (which notably include GNU Hurd and Microsoft Windows).
|
|
|
|
documentation:
|
|
|
|
* List DB_NO_TERMLIST in the WritableDatabase constructor API documentation
|
|
where we already list the other DB_* constants.
|
|
|
|
portability:
|
|
|
|
* Eliminate single use of std::mem_fun() which was deprecated in C++11 and
|
|
removed in C++17. Reported by Mateusz Pusz in #806.
|
|
|
|
* Add missing includes for std::numeric_limits<>. Reported by stac47 in #805.
|
|
|
|
* Work around mingw.org header issue. MSVC seems to implicitly include
|
|
<winerror.h> but mingw.org's headers don't, leading to ERROR_PIPE_CONNECTED
|
|
not being defined. Fixes https://github.com/xapian/xapian/pull/318, reported
|
|
by Alex Sandro.
|
|
|
|
* Suppress MSVC warnings about possible loss of data. The values involved are
|
|
the number of set bits in a value of integer type, so these warnings are
|
|
bogus.
|
|
|
|
* Include <sys/types.h> for size_t and off_t, which is the appropriate header,
|
|
and needed with Android's bionic libc. Patch from Matthieu Gautier.
|
|
|
|
* Use a temporary file for the Doxygen configuration to work around Doxygen
|
|
1.8.19 bug which truncates a config file read from stdin to 4096 bytes
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Aug 27 06:17:24 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
|
|
|
- Update to 1.4.17:
|
|
+ API:
|
|
* Database::get_average_length(): Add this as an alias for Database::get_avlen().
|
|
In git master we've added this as a preferred new name - adding it to 1.4.x too
|
|
will make it easier for users to update to using this.
|
|
* Database::get_spelling_suggestion(): Optimise edit distance initialisation
|
|
loop to significantly reduce the cost of a typical edit distance calculation.
|
|
* Fix query expansion on sharded databases. The mechanism for passing in which
|
|
shard a TermList is from wasn't hooked up and as a result we'd always think
|
|
it's from the first shard, meaning the statistics would be wrong and that our
|
|
suggested terms may not have been as good as they should be in this
|
|
situation.
|
|
* Enquire::get_eset(): Use string::compare() to avoid 1/3 of the string compares
|
|
on average.
|
|
+ documentation:
|
|
* Update doxygen HTML headers and footers to resolve issues with some
|
|
interactive features of the API docs not working. Reported by Enrico Zini.
|
|
* Stop specifying obsolete doxygen settings PERL_PATH and MSCGEN_PATH.
|
|
* Clarify API docs for MSet::get_termfreq() to make it clear that this
|
|
considers all documents in the database, not only those that matched the
|
|
searched (it would sometimes be useful to be able to report the number of
|
|
occurrences of a term in the matched documents, but it's not something we
|
|
currently keep track of). Reported by Tadeusz Sośnierz and Peter Salomonsen.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Aug 15 18:44:45 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
|
|
|
- update to 1.4.16:
|
|
* MSet::snippet(): The snippet now includes trailing punctuation which carries
|
|
meaning or gives useful context. See
|
|
https://github.com/xapian/xapian/pull/180, reported by Robert Stepanek.
|
|
|
|
* MSet::snippet(): Fix segfault generating snippet from default-constructed
|
|
MSet. This probably isn't something you'd typically do, but it shouldn't
|
|
crash. Found during extended testing of #803 (which only affected git
|
|
master) which was reported by Robert Stepanek.
|
|
|
|
* Remove trailing full stop from exception messages. We conventionally don't
|
|
include one, but a few cases didn't follow that convention.
|
|
|
|
testsuite:
|
|
|
|
* Replace direct use of ftime() which gives deprecation warnings with recent
|
|
mingw. Reported by srinivasyadav22.
|
|
|
|
matcher:
|
|
|
|
* Fix segfault in rare cases in the query optimiser. We keep a pointer to the
|
|
most recent posting list to use as a hint for opening the next posting list,
|
|
but the existing mechanism to take ownership of this hint had a flaw. We now
|
|
invalidate the hint in situations where it might be indirectly deleted which
|
|
is safe, but somewhat conservative.
|
|
|
|
* Improve the optimisation of an always-matching OP_VALUE_GE to also take
|
|
effect when the value slot's lower bound is equal to the limit of the
|
|
OP_VALUE_GE. Patch from boda sadalla.
|
|
|
|
glass backend:
|
|
|
|
* Report the correct errno value if commit() fails. We were potentially
|
|
reporting ENOENT from an unlink() call cleaning up a temporary file prior to
|
|
throwing the exception instead.
|
|
|
|
documentation:
|
|
|
|
* Fix missing menus in API documentation. Newer doxygen generates .js files
|
|
which we also need to distribute and install. Reported by sec^nd on #xapian.
|
|
|
|
* Note OP_FILTER ignored subquery bug fixed in 1.4.15 as present in 1.4.14 and
|
|
older.
|
|
|
|
portability:
|
|
|
|
* Use our own autoconf cache variable namespace (xo_cv_ prefix instead of
|
|
ac_cv_) to avoid colliding with standard autoconf macro use if config.site or
|
|
a shared config.cache is used. The former case caused a build failure for
|
|
the OpenBSD port with 1.4.15, reported by Lucas R.
|
|
|
|
* Use clock_gettime() and nanosleep() under modern mingw as these allow higher
|
|
precision than what we previously used.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Apr 29 17:00:49 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
|
|
|
|
- Update to version 1.4.15:
|
|
+ API:
|
|
* Database::check(): Fix checking of replication changesets.
|
|
This reverts a change incorrectly made in 1.3.7.
|
|
* Database::locked(): Return false instead of true for a closed inmemory DB.
|
|
* Database::commit(): If commit() failed with an exception while trying to add
|
|
pending changes (e.g. InvalidArgumentError due to a long term containing zero
|
|
bytes) then a subsequent commit() on the same object would throw the same
|
|
exception. Now we clear the pending changes in this situation (like we
|
|
already did for failure at other stages in the commit). This bug remains
|
|
unfixed for the chert backend as it's harder to fix there and the effort to
|
|
fix it and extra risk of breakage don't seem justified for a backend we
|
|
recommend people migrate away from.
|
|
* QueryParser::parse_query(): Optimise parsing of multi-word synonyms.
|
|
+ Testsuite fixes.
|
|
+ matcher:
|
|
* Hoist positional check above OP_FILTER.
|
|
* Handle OP_FILTER with more than two subqueries correctly. Previously we'd
|
|
only check the first two subqueries in some situations.
|
|
+ remote backend:
|
|
* For a remote WritableDatabase, the client now keeps track of whether there
|
|
are pending changes, and if there aren't then we now do nothing for commit()
|
|
or cancel() calls. In particular this saves a message exchange when the
|
|
WritableDatabase destructor is called when changes have already been
|
|
committed with an explicit call to commit() (which is what we recommend
|
|
doing, since with an explicit call to commit() you get to see any exception
|
|
which gets thrown).
|
|
* When closing a remote prog WritableDatabase, previously an exception could
|
|
leave the remote connection open with the remote server running, and we'd
|
|
then wait for the specified timeout before closing the connection. Now we
|
|
close the connection before letting the exception propagate.
|
|
* Don't swallow exceptions from Database::close() on a remote database. If
|
|
we aren't in a transaction and so try to commit() and that fails then
|
|
previously the caller would have no indication of the failure.
|
|
* Fix handling the reported term weight when remote shards are searched.
|
|
Fixes 5 XFAILs in the testsuite.
|
|
* Add missing space to mismatching protocol versions error message.
|
|
+ build system:
|
|
* Fix to build when configured with --disable-backend-remote, broken by changes
|
|
in 1.4.14. Fixes #797, reported by Дилян Палаузов.
|
|
* The clang and icc compilers both define __GNUC__, which led our ABI mismatch
|
|
message to report them as "g++" with a bogus version (the version of GCC that
|
|
these compilers advertise themselves as, which for clang is always 4.2.0) -
|
|
now we report clang++ or icc along with the actual version of that compiler.
|
|
+ updated documentation.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jan 15 09:12:32 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>
|
|
|
|
- Update to 1.4.14:
|
|
* API:
|
|
+ Xapian::QueryParser: Handle "" inside a quoted phrase better. In a quoted
|
|
boolean term, "" is treated as an escaped ", so handle it in a compatible way
|
|
for quoted phrases. Previously we'd drop out of the phrase and start a new
|
|
phrase. Fixes #630, reported by Austin Clements.
|
|
+ Xapian::Stem: The constructor which takes a stemmer name now takes an
|
|
optional second bool parameter - if this is true, then an unknown stemmer
|
|
name falls back to using the "none" stemmer instead of throwing an exception.
|
|
This allows simply constructing a stemmer from an ISO language code without
|
|
having to worry about whether there's a stemmer for that language, and
|
|
without having to handle an exception if there isn't.
|
|
+ Xapian::Stem: Fix a bug with handling 4-byte UTF-8 sequences which
|
|
potentially affects most of the stemmers. None of the stemmers work in
|
|
languages where 4-byte UTF-8 sequences are part of the alphabet, but this
|
|
bug could result in invalid UTF-8 sequences in terms generated from text
|
|
containing high Unicode codepoints such as emoji, which can cause issues (for
|
|
example, in some language bindings). Fix synced from Snowball git post
|
|
2.0.0.
|
|
+ Xapian::Stem: Add a new is_none() method which tests if this is a "none"
|
|
stemmer.
|
|
+ Xapian::Weight: The total length of all documents is now made available to
|
|
Xapian::Weight subclasses, and this is now used by DLHWeight, DPHWeight and
|
|
LMWeight. To maintain ABI compatibility, internally this still fetches the
|
|
average length and the number of documents, multiplies them, then rounds the
|
|
result, but in the next release series this will be handled directly.
|
|
+ Xapian::Database::locked() on an inmemory database used to always return
|
|
false, but an inmemory Database is always actually a WritableDatabase
|
|
underneath, so now we always report true in this case because it's really
|
|
always report being locked for writing.
|
|
+ testsuite:
|
|
* Fix failing multi_glass_remoteprog_glass tests on x86. When the tests are
|
|
run under valgrind, remote servers should be run using the runsrv wrapper
|
|
script, but this wasn't happening for remote servers in multi-databases - now
|
|
it is. Also, previously runsrv only used valgrind for the remote for an x86
|
|
build that didn't use SSE, but it seems there are x87 instructions in libc
|
|
that are affected by valgrind not providing excess precision, so do this for
|
|
x86 builds which use SSE too. Together these changes fix failures of
|
|
topercent2, xor2, tradweight1 under backend multi_glass_remoteprog_glass on
|
|
x86.
|
|
* Fix C++ One-Definition Rule (ODR) violation in testsuite code. Two different
|
|
source files linked into apitest were each defining a different `struct
|
|
test`. Wrap each in an anonymous namespace to localise it to the file it is
|
|
defined and used in. This was probably harmless in practice, unless trying
|
|
to build with Link-Time Optimisation or similar (which is how it was
|
|
detected).
|
|
* Test all language codes in stemlangs1. The testsuite hardcodes a list of
|
|
supported language codes which hadn't been updated since 2008.
|
|
* Improve DateRangeProcessor test coverage.
|
|
+ matcher:
|
|
* Handle pruning under a positional check. This used to be impossible, but
|
|
since 1.4.13 it can happen as we now hoist AND_NOT to just below where we
|
|
hoist the positional checks. The code on master already handles pruning here
|
|
so this bug is specific to the RELEASE/1.4 branch.
|
|
* When searching with collapsing over multiple shards, at least some of which
|
|
are remote, uncollapsed_upper_bound could be too low and
|
|
uncollapsed_lower_bound too high. This was causing assertion failures in
|
|
testcases msize1 and msize2 under test harness backends
|
|
multi_glass_remoteprog_glass and multi_remoteprog_glass.
|
|
* Internally we no longer calculate a bogus total_term_count as the sum of
|
|
total_length * doc_count for all shards. Instead we just use the sum of
|
|
total_length, which gives the total number of term occurrences. This change
|
|
should improve the estimated collection_freq values for synonyms.
|
|
* Several places where we might divide zero by zero in a database where wdf was
|
|
always zero have been fixed.
|
|
+ build system:
|
|
* configure: Stop using AC_FUNC_MEMCMP. The autoconf manual marks it as
|
|
"obsolescent", and it seems clear that nobody's relying on it as we're
|
|
missing the "'AC_LIBOBJ' replacement for 'memcmp'" which it would try to
|
|
use if needed.
|
|
+ documentation:
|
|
* HACKING: Replace release docs with pointer to the developer guide where they
|
|
are now maintained.
|
|
+ portability:
|
|
* Eliminate 2 uses of atoi(). These are potentially problematic in a
|
|
multithreaded application if setlocale() is called by another thread at the
|
|
same time.
|
|
* Don't check __GNUC__ in visibility.h as the configure probe before defining
|
|
XAPIAN_ENABLE_VISIBILITY checks that the visibility attributes work. This
|
|
probably makes no difference in practice, as all compilers we're aware of
|
|
which support symbol visibility also define __GNUC__.
|
|
* Document Sun C++ requires --disable-shared.
|
|
|
|
- Update to 1.4.13:
|
|
+ API:
|
|
* Fix write one past end of std::vector on certain QueryParser parser errors.
|
|
This is undefined behaviour, but the write was always into reserved space, so
|
|
in practice we'd actually get away with it (it was noticed because it
|
|
triggers an error when running under ubsan and using libc++).
|
|
* MSet::get_matches_estimated(): Improve rounding of result - a bug meant we
|
|
would almost always round down.
|
|
* Optimise test for UTF-8 continuation character. Performing a signed char
|
|
comparison shaves an instruction or two on most architectures.
|
|
* Database::get_revision(): Return revision 0 for a Database with no shards
|
|
rather that throwing InvalidOperationError.
|
|
* DPHWeight: Avoid dividing by 0 when searching a sharded database when one
|
|
shard is empty. The result wasn't used in this case, but it's still
|
|
undefined behaviour. Detected by UBSan.
|
|
+ testsuite:
|
|
* The "singlefile" test harness backend manager now creates databases by
|
|
compacting the corresponding underlying backend database (creating it first
|
|
if need be) rather than always creating a temporary database to compact.
|
|
* Enable compaction testcases for multi and singlefile test harness backends.
|
|
* Add generated database support for remoteprog and remotetcp test harness
|
|
backends.
|
|
* Add test harness support for running testcases using a multi database
|
|
comprised of one local and one remote shard, or two remote shards.
|
|
* Check if removing existing multi stub failed. Previously if removing an
|
|
existing stub failed, the test harness would create a temporary new stub and
|
|
then try to rename it over the old one, which will always fail on Microsoft
|
|
Windows.
|
|
* Wait for xapian-tcpsrv processes to finish before moving on to the next
|
|
testcase under __WIN32__ like we already do on POSIX platforms.
|
|
+ matcher:
|
|
* Optimise OP_AND_NOT better. We now combine its left argument with other
|
|
connected and-like subqueries, and gather up and hoist the negated subqueries
|
|
and apply them together above the combined and-like subqueries, just below
|
|
any positional filters.
|
|
* Optimise OP_AND_MAYBE better. We now combine its left argument with other
|
|
connected and-like subqueries, and gather up and hoist the optional
|
|
subqueries and apply them together above the combined and-like subqueries and
|
|
any hoisted positional filters.
|
|
* Treat all BoolWeight queries as scaled by 0 - we can optimise better if we
|
|
know the query is unweighted.
|
|
+ glass backend:
|
|
* Allow zlib compression to reduce size by one byte. We were specifying an
|
|
output buffer size one byte smaller than the input, but it appears zlib won't
|
|
use the final byte in the buffer, so we actually need to pass the input size
|
|
as the output buffer size.
|
|
* Only try to compress Btree item values > 18 bytes, which saves CPU time
|
|
without sacrificing any significant size savings.
|
|
+ remote backend:
|
|
* Fix match stats when searching with collapsing over multiple shards and at
|
|
least some shards are remote.
|
|
* Ignore orphaned remote protocol replies which can happen when searching with
|
|
a remote shard if an exception is thrown by another shard.
|
|
* Wait for xapian-progsrv child to exit when a remote Database or
|
|
WritableDatabase object is closed under __WIN32__ like we already do for
|
|
POSIX platforms.
|
|
+ documentation:
|
|
* Correct documentation of initial messages in replication protocol.
|
|
+ tools:
|
|
* quest: Report bounds and estimate of number of matches.
|
|
* xapian-delve: Improve output when database revision information is not
|
|
available. We now specially handle the cases of a DB with multiple shards
|
|
and a backend which doesn't support get_revision().
|
|
+ portability:
|
|
* Fix warning from GCC 9 with -Wdeprecated-copy (which is enabled by -Wextra)
|
|
if a reference to an Error object is thrown.
|
|
* Suppress GCC warning in our API headers when compiling code using Xapian with
|
|
GCC and -Wduplicated-branches.
|
|
* Mark some internal classes as final (following GCC -Wsuggest-final-types
|
|
suggestions to allow some method calls to be devirtualised).
|
|
* Fix to build with --enable-maintainer-mode and Perl < 5.10, which doesn't
|
|
have the `//=` operator. It's unlikely developers will have such an old
|
|
Perl, but the mingw environment on appveyor CI does. The use of `//=` was
|
|
introduced by changes in 1.4.10.
|
|
|
|
- Update to 1.4.12:
|
|
+ API:
|
|
* Xapian::PostingSource: When a PostingSource without a clone() method is used
|
|
with a Database containing multiple shards, the documented behaviour has
|
|
always been that Xapian::InvalidOperationError is thrown. However, since at
|
|
least 1.4.0, this exception hasn't been thrown, but instead a single
|
|
PostingSource object would get used for all the shards, typically leading to
|
|
incorrect results. The actual behaviour now matches what was documented.
|
|
* Xapian::Database: Add size() method which reports the number of shards.
|
|
* Xapian::Database::check(): You can now pass a stub database which will check
|
|
all the databases listed in it (or throw Xapian::UnimplementError for
|
|
backends which don't support checking).
|
|
* Xapian::Document: When updating a document use a emplace_hint() to make the
|
|
bulk insertion O(n) instead of O(n·log(n)), and use std::move() to avoid
|
|
copying OmDocumentTerm objects.
|
|
* Xapian::Query: Add missing get_unique_terms_end() method.
|
|
* Xapian::iterator_valid(): Implement for Utf8Iterator
|
|
+ testsuite:
|
|
* Fix keepalive1 failures on some platforms. On some platforms a timeout
|
|
gives NetworkTimeoutError and on others NetworkError - since 1.4.10 changed
|
|
to checking the exact exception type, keepalive1 has been failing on the
|
|
former set of platforms. We now just check for NetworkError or a subclass
|
|
here (since NetworkTimeoutError is a subclass of NetworkError).
|
|
* Run cursordelbug1 testcase with multi databases too.
|
|
+ matcher:
|
|
* Ownership of PostingSource objects during the match now makes use of the
|
|
optional reference-counting mechanism rather than a separate flag.
|
|
+ remote backend:
|
|
* Fix remote protocol design bug. Previously some messages didn't send a reply
|
|
but could result in an exception being sent over the link. That exception
|
|
would then get read as a response to the next message instead of its actual
|
|
response so we'd be out of step.
|
|
This fix necessitated a minor version bump in the remote protocol (to 39.1).
|
|
If you are upgrading a live system which uses the remote backend, upgrade the
|
|
servers before the clients.
|
|
* Fix socket leaks on errors during opening a database.
|
|
* Don't close remote DB socket on receiving EOF as the levels above won't
|
|
know it's been closed and may try to perform operations on it, which would be
|
|
problematic if that fd gets reused in the meantime. Leaving it open means
|
|
any further operations will also get EOF.
|
|
* We add a wrapper around the libc socket() function which deals with the
|
|
corner case where SOCK_CLOEXEC is defined but socket() fails if it is
|
|
specified (which can happen with a newer libc and older kernel).
|
|
Unfortunately, this wrapper wasn't checking the returned value from socket()
|
|
correctly, so when SOCK_CLOEXEC was specified and non-zero it would create
|
|
the socket() with SOCK_CLOEXEC, then leak that one and create it again
|
|
without SOCK_CLOEXEC. We now check the return value properly.
|
|
* Fix potential infinite loop in ValueCountMatchSpy::merge_results() if passed
|
|
serialised results with extra data appended (which shouldn't happen in normal
|
|
use).
|
|
+ build system:
|
|
* Current versions of valgrind result in false positives on current versions of
|
|
macOS, so on this platform configure now only enables use of valgrind if it's
|
|
specified explicitly.
|
|
* Refactor macros to probe for compiler flags so they automatically cache
|
|
their results and consistently report success/failure.
|
|
* Rename our custom TYPE_SOCKLEN_T macro to XAPIAN_TYPE_SOCKLEN_T. The
|
|
AX_TYPE_SOCKLEN_T macro defines an alias of TYPE_SOCKLEN_T for itself which
|
|
means it can get used instead in some situations, but it isn't compatible
|
|
with our macro. We can't just switch to AX_TYPE_SOCKLEN_T as it doesn't
|
|
handle cases we need, so just rename our macro to avoid potential problems.
|
|
+ documentation:
|
|
* Improve API documentation for Xapian::Query class. Add missing doc
|
|
comments and improve some of the existing ones.
|
|
* Add Unicode consortium names and codes for categories from Chapter 4, Version
|
|
11 of the Unicode standard. Patch from David Bremner.
|
|
* Improve configure --help output - drop "[default=no]" for --enable-*
|
|
options which default off.
|
|
Палаузов.
|
|
* Fix API documentation typo - Query::op (the type) not op_ (a parameter name).
|
|
* Note which version Document::remove_postings() was added in.
|
|
* In the remote protocol documentation, MSG_REPLACEDOCUMENTTERM was documented
|
|
as not having a reply, but actually REPLY_ADDDOCUMENT is sent.
|
|
* Update list of <xapian/iterator.h> users.
|
|
+ tools:
|
|
* copydatabase: A change in 1.4.6 which added support for \ as directory
|
|
separator on platforms where that's the norm broke the code in copydatabase
|
|
which removes a trailing slash from input databases.
|
|
+ portability:
|
|
* Add missing '#include <cstring>'.
|
|
* Fix str() helper function when converting the most negative value
|
|
of a signed integer type.
|
|
* Avoid calling close() on fd we know must actually be a WIN32 SOCKET.
|
|
* Include <ios> not <iomanip> for std::boolalpha.
|
|
* Rework setenv() compatibility handling. Now that Solaris 9 is dead we can
|
|
assume setenv() is provided by Unix-like platforms (POSIX requires it). For
|
|
other platforms, provide a compatibility implementation of setenv() which
|
|
so the compatibility code is encapsulated in one place rather than replicated
|
|
at every use.
|
|
* Fix maintainer-mode builds on Solaris where /bin/tr is not POSIX compliant.
|
|
We now use the simple workaround suggested by the autoconf manual.
|
|
* Improve support for Sun C++:
|
|
+ Suppress unhelpful warning for lambda with multiple return statements.
|
|
+ Enable reporting the tags corresponding to warnings, which we need
|
|
to know in order to suppress any new unhelpful warnings.
|
|
+ Adjust our workaround for bug with this compiler's <cmath> header to avoid
|
|
a compiler warning.
|
|
+ Use -xldscope=symbolic for Sun C++. This flag is roughly equivalent to
|
|
-Bsymbolic-functions which we've probed for with GNU ld since Xapian 1.0.0.
|
|
|
|
- Update to 1.4.11:
|
|
+ API:
|
|
* 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.
|
|
* Query::OP_ELITE_SET currently incorrectly recursively flattens any OP_OR (or
|
|
OP_OR-like) subqueries into the list of subqueries it selects from - until
|
|
that's fixed, we now select from the full exploded list rather than the last
|
|
n (where n is the number of direct subqueries of the OP_ELITE_SET).
|
|
+ testsuite:
|
|
* Testcases which need a generated database now get run with a sharded
|
|
database.
|
|
* Avoid using strerror() in the testsuite which removes an obstacle to running
|
|
tests in parallel in separate threads.
|
|
+ matcher:
|
|
* 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 backend:
|
|
* 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.
|
|
+ chert backend:
|
|
* Handle an empty value slot lower bound gracefully, equivalent to the change
|
|
made for glass.
|
|
+ documentation:
|
|
* HACKING: We no longer use auto_ptr<>.
|
|
* NEWS: Correct factual error in old entry - the 0.4.1 release was Open Muscat
|
|
not OmSee (the OmSee name was only applied after that final release was made,
|
|
and only used internally to BrightStation).
|
|
+ portability:
|
|
* Suppress more clang -Wself-assign-overloaded warnings in testcases which are
|
|
deliberately testing handling of self-assignment.
|
|
* Add missing includes of <cerrno>.
|
|
+ debug code:
|
|
* When configured with --enable-log, the O_SYNC flag was always specified when
|
|
opening the logfile, with the intention that the most recent log entries
|
|
wouldn't get lost if there was a crash, but O_SYNC can incur a significant
|
|
performance overhead and most debugging is not of such crashes. So we no
|
|
longer specify O_SYNC by default, but you can now request synchronous logging
|
|
by including %! anywhere in the filename specified with XAPIAN_DEBUG_LOG
|
|
(the %! is replaced with the empty string). We also now use O_DSYNC if
|
|
available in preference to O_SYNC, since the mtime of the log file isn't
|
|
important.
|
|
|
|
- Update to 1.4.10:
|
|
+ API:
|
|
* DatabaseClosedError: New exception class thrown instead of DatabaseError when
|
|
an operation is attempted which can't be completed because it involves a
|
|
database which close() was previously called on. DatabaseClosedError is a
|
|
subclass of DatabaseError so existing code catching DatabaseError will still
|
|
work as before.
|
|
* DatabaseNotFoundError: New exception class thrown instead of
|
|
DatabaseOpeningError when the problem is the problem is "file not found" or
|
|
similar. DatabaseNotFoundError is a subclass of DatabaseOpeningError so
|
|
existing code catching DatabaseOpeningError will still work as before.
|
|
* Query: Make &=, |= and ^= on Query objects opportunistically append to
|
|
an existing query with a matching query operator which has a reference
|
|
count of 1. This provides an easy way to incrementally build flatter query
|
|
trees.
|
|
* Query: Support `query &= ~query2` better - this now is handled exactly
|
|
equivalent to `query = query & ~query2` and gives `query AND_NOT query2`
|
|
instead of `query AND (<alldocuments> AND_NOT query2)`.
|
|
* QueryParser: Now uses &=, |= and ^= to produce flatter query trees. This
|
|
fixes problems with running out of stack space when handling Query object
|
|
trees built by abusing QueryParser to parse very large machine-generated
|
|
queries.
|
|
* Stopper: Fix incorrect accents in Hungarian stopword list. Patch from David
|
|
Corbett.
|
|
+ testsuite:
|
|
* Test MSet::snippet() with small and zero lengths.
|
|
* Fix testcase stubdb4 annotations - this testcase doesn't need a backend.
|
|
* Add PATH annotation for testcases needing get_database_path() to avoid having
|
|
to repeatedly list the backends where this is supported in testcase
|
|
annotations.
|
|
* TEST_EXCEPTION helper macro now checks that the exact specified exception
|
|
type is thrown. Previously it would allow a subclass of the specified
|
|
exception type, but in testcases we really want to be able to test for an
|
|
exact type.
|
|
+ matcher:
|
|
* Map OP_VALUE_GE/OP_VALUE_LE on an empty slot to EmptyPostList. We already do
|
|
this for OP_VALUE_RANGE, and it's a little more efficient than creating a
|
|
postlist object which checks the empty value slot.
|
|
+ glass backend:
|
|
* We no longer flush all pending positional changes when a postlist, termlist
|
|
or all-terms is opened on a modified WritableDatabase. Doing so was
|
|
incurring a significant performance cost, and the first of these happens
|
|
internally when `replace_document(term, doc)` is used, which is the usual way
|
|
to support non-numeric unique ids. We now only flush pending positional
|
|
changes when committing.
|
|
+ remote backend:
|
|
* Use poll() where available instead of select(). poll() is specified by
|
|
POSIX.1-2001 so should be widely available by now, and it allows watching any
|
|
fd (select() is limited to watching fds < FD_SETSIZE). For any platforms
|
|
which still lack poll() we now workaround this select() limitation when a
|
|
high numbered fd needs to be watched (for example, by trying a non-blocking
|
|
read or write and on EAGAIN sleeping for a bit before retrying).
|
|
* Stop watching fds for "exceptional conditions" - none of these are relevant
|
|
to our usage.
|
|
* Remove 0.1s timeout in ready_to_read(). The comment says this is to avoid a
|
|
busy loop, but that's out of date - the matcher first checks which remotes
|
|
are ready to read and then does a second pass to handle those which weren't
|
|
with a blocking read.
|
|
+ build system:
|
|
* Stop probing for header sys/errno.h which is no longer used - it was only
|
|
needed for Compaq C++, support for which was dropped in 1.4.8.
|
|
+ documentation:
|
|
* docs/valueranges.html: Update to document RangeProcessor instead of
|
|
ValueRangeProcessor - the latter is deprecated and will be gone in the next
|
|
release series.
|
|
* Document RangeProcessor::operator()() returns OP_INVALID to signal it doesn't
|
|
recognise a range.
|
|
* Update some URLs for pages which have moved.
|
|
* Use https for URLs where available.
|
|
* HACKING: Update "empty()" section for changes in C++11.
|
|
+ portability:
|
|
* Suppress clang warnings for self-assignment tests. Some testcases trigger
|
|
this new-ish clang warning while testing that self-assignment works, which
|
|
seems a useful thing to be testing - at least one of these is a regression
|
|
test.
|
|
* Add std::move to fix clang -Wreturn-std-move warning (which is enabled by
|
|
-Wall).
|
|
* Add casts to fix ubsan warnings. These cases aren't undefined behaviour, but
|
|
are reported by ubsan extra checks implicit-integer-truncation and/or
|
|
implicit-conversion which it is useful to be able to enable to catch
|
|
potential bugs.
|
|
* Fix check for when to use _byteswap_ulong() - in practice this would only
|
|
have caused a problem if a platform provided _byteswap_ushort() but not
|
|
_byteswap_ulong(), but we're not aware of any which do.
|
|
* Fix return values of do_bswap() helpers to match parameter types (previously
|
|
we always returned int and only supported swapping types up to 32 bits, so
|
|
this probably doesn't result in any behavioural changes).
|
|
* Only include <intrin.h> if we'll use it instead of always including it when
|
|
it exists. Including <intrin.h> can result in warnings about duplicate
|
|
declarations of builtin functions under mingw.
|
|
* Remove call to close()/closesocket() when the argument is always -1 (since
|
|
the change to use getaddrinfo() in 1.3.3).
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Nov 20 08:59:06 UTC 2018 - alarrosa@suse.com
|
|
|
|
- Update to 1.4.9:
|
|
* API:
|
|
+ Document::add_posting(): Fix bugs with the change in 1.4.8 to more
|
|
efficiently handle insertion of a batch of extra positions in ascending
|
|
order. These could lead to missing positions and corrupted encoded
|
|
positional data.
|
|
* remote backend:
|
|
+ Avoid hang if remote connection shutdown fails by not waiting for the
|
|
connection to close in this situation. Seems to fix occasional hangs seen on
|
|
macOS. Patch from Germán M. Bravo.
|
|
|
|
- Update to 1.4.8:
|
|
* API:
|
|
+ QueryParser,TermGenerator: Add new stemming mode STEM_SOME_FULL_POS.
|
|
This stores positional information for both stemmed and unstemmed terms,
|
|
allowing NEAR and ADJ to work with stemmed terms. The extra positional
|
|
information is likely to take up a significant amount of extra disk space so
|
|
the default STEM_SOME is likely to be a better choice for most users.
|
|
+ Database::check(): Fetch and decompress the document data to catch problems
|
|
with the splitting of large data into multiple entries, corruption of the
|
|
compressed data, etc. Also check that empty document data isn't explicitly
|
|
stored for glass.
|
|
+ Fix an incorrect type being used for term positions in the TermGenerator API.
|
|
These were Xapian::termcount but should be Xapian::termpos. Both are
|
|
typedefs for the same 32-bit unsigned integer type by default (almost always
|
|
"unsigned int") so this change is entirely compatible, except that if you
|
|
were configuring 1.4.7 or earlier with --enable-64bit-termcount you need to
|
|
also use the new --enable-64bit-termpos configure option with 1.4.8 and up or
|
|
rebuild your applications. This change was necessary to make
|
|
--enable-64bit-termpos actually useful.
|
|
+ Add Document::remove_postings() method which removes all postings in a
|
|
specified term position range much more efficiently than by calling
|
|
remove_posting() repeatedly. It returns the number of postings removed.
|
|
+ Fix bugs with handling term positions >= 0x80000000. Reported by Gaurav
|
|
Arora.
|
|
+ Document::add_posting(): More efficiently handle insertion of a batch of
|
|
extra positions in ascending order.
|
|
+ Query: Simplify OP_SYNONYM with single OP_WILDCARD subquery by converting to
|
|
OP_WILDCARD with combiner OP_SYNONYM, which means such cases can take
|
|
advantage of the new matcher optimisation in this release to avoid needing
|
|
document length for OP_WILDCARD with combiner OP_SYNONYM.
|
|
* testsuite:
|
|
+ Catch and report std::exception from the test harness itself.
|
|
+ apitest: Drop special case for not storing doc length in testcase postlist5 -
|
|
all backends have stored document lengths for a long time.
|
|
+ test_harness: Create directories in a race-free way.
|
|
* matcher:
|
|
+ Avoid needing document length for an OP_WILDCARD with combiner OP_SYNONYM.
|
|
We know that we can't get any duplicate terms in the expansion of a wildcard
|
|
so the sum of the wdf from them can't possibly exceed the document length.
|
|
+ OP_SYNONYM: No longer tries to initialise weights for its subquery, which
|
|
should reduce the time taken to set up a large wildcard query.
|
|
+ OP_SYNONYM: Fix frequency estimates when OP_SYNONYM is used with a
|
|
subquery containing OP_XOR or OP_MAX - in such cases the frequency
|
|
estimates for the first subquery of the OP_XOR/OP_MAX were used for
|
|
all its subqueries. Also the estimated collection frequency is
|
|
now rounded to the nearest integer rather than always being rounded
|
|
down.
|
|
* glass backend:
|
|
+ Revert change made in 1.4.6:
|
|
Enable glass's "open_nearby_postlist" optimisation (which especially helps
|
|
large wildcard queries) for writable databases without any uncommitted
|
|
changes as well.
|
|
The amended check isn't conservative enough as there may be postlist changes
|
|
in the inverter while the table is unmodified. This breaks testcase
|
|
T150-tagging.sh in notmuch's testsuite, reported by David Bremner.
|
|
+ When indexing a document without any terms we now avoid some unnecessary work
|
|
when storing its termlist.
|
|
* build system:
|
|
+ New --enable-64bit-termpos configure option which makes Xapian::termpos a
|
|
64-bit type and enables support for storing 64-bit termpos values in the
|
|
glass backend in an upwardly compatible way. Few people will actually want
|
|
to index documents more than 4 billion words long, but the extra numbering
|
|
space can be helpful if you want to use term positions in "interesting" ways.
|
|
+ Hook up configure --disable-sse/--enable-sse=sse options for MSVC.
|
|
+ Fix configure probes for builtin functions for clang. We need to specify the
|
|
argument types for each builtin since otherwise AC_CHECK_DECLS tries to
|
|
compile code which just tries to take a pointer to the builtin function
|
|
causing clang to give an error saying that's not allowed. If the argument
|
|
types are specified then AC_CHECK_DECLS tries to compile a call to the
|
|
builtin function instead.
|
|
* documentation:
|
|
+ Fix documentation comment typo.
|
|
* tools:
|
|
+ xapian-delve: Test for all docs empty using get_total_length() which is
|
|
slightly simpler internally than get_avlength(), and avoids an exact floating
|
|
point equality check.
|
|
* examples:
|
|
+ quest: Support --weight=coord.
|
|
+ xapian-pos: New tool to show term position info to help debugging when using
|
|
positional information in more complex ways.
|
|
* portability:
|
|
+ Fix undefined behaviour from C++ ODR violation due to using the same name
|
|
two different non-static inline functions. It seems that with current GCC
|
|
versions the desired function always ends up being used, but with current
|
|
clang the other function is sometimes used, resulting in database corruption
|
|
when using value slots in docid 16384 or higher with the default glass
|
|
backend. Patch from Germán M. Bravo.
|
|
+ Suppress alignment cast warning on sparc Linux. The pointer being cast is to
|
|
a record returned by getdirentries(), so it should be suitable aligned.
|
|
+ Drop special handling for Compaq C++. We never actually achieved a working
|
|
build using it, and I can find no evidence that this compiler still exists,
|
|
let alone that it was updated for C++11 which we now require.
|
|
+ Create new database directories in race-free way.
|
|
+ Avoid throwing and handling an exception in replace_document() when
|
|
adding a document with a specified docid which is <= last_docid but currently
|
|
unused.
|
|
+ Use our portable code for handling UUIDs on all platforms, and only use
|
|
platform-specific code for generating a new UUID. This fixes a bug with
|
|
converting UUIDs to and from string representation on FreeBSD, NetBSD and
|
|
OpenBSD on little-endian platforms which resulted in reversed byte order in
|
|
the first three components, so the same database would report a different
|
|
UUID on these platforms compared to other platforms. With this fix, the
|
|
UUIDs of existing databases will appear to change on these platforms
|
|
(except in rare "palindronic" cases). Reported by Germán M. Bravo.
|
|
+ Fix to build with a C++17 compiler. Previously we used a "byte" type
|
|
internally which clashed with "std::byte" in source files which use
|
|
"using namespace std;". Fixes #768, reported by Laurent Stacul.
|
|
+ Adjust apitest testcase stubdb2 to allow for NetBSD oddity: NetBSD's
|
|
getaddrinfo() in IPv4 mode seems to resolve ::1 to an IPv4 address on the
|
|
local network.
|
|
+ Avoid timer_create() on OpenBSD and NetBSD. On OpenBSD it always fails with
|
|
ENOSYS (and there's no prototype in the libc headers), while on NetBSD it
|
|
seems to work, but the timer never seems to fire, so it's useless to us (see
|
|
#770).
|
|
+ Use SOCK_NONBLOCK if available to avoid a call to fcntl(). It's supported by
|
|
at least Linux, FreeBSD, NetBSD and OpenBSD.
|
|
+ Use O_NOINHERIT for O_CLOEXEC on Windows. This flag has essentially the same
|
|
effect, and it's common in other codebases to do this.
|
|
+ On AIX O_CLOEXEC may be a 64-bit constant which won't fit in an int. To
|
|
workaround this stupidity we now call the non-standard open64x() instead
|
|
of open() when the flags don't fit in an int.
|
|
+ Add functions to add/multiply with overflow check. These are implemented
|
|
with compiler builtins or equivalent where possible, so the overflow check
|
|
will typically just require a check of the processor's overflow or carry
|
|
flag.
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Oct 24 05:42:05 UTC 2018 - sean@suspend.net
|
|
|
|
- Update to 1.4.7:
|
|
* API:
|
|
+ Database::check(): Fix bogus error reports for documents with length
|
|
zero due to a new check added in 1.4.6 that the doclength was between the
|
|
stored upper and lower bounds, which failed to allow for the lower bound
|
|
ignoring documents with length zero (since documents indexed only by
|
|
boolean terms aren't involved in weighted searches).
|
|
|
|
+ Query: Use of Query::MatchAll in multithreaded code causes problems
|
|
because the reference counting gets messed up by concurrent updates.
|
|
Document that Query(string()) should be used instead of MatchAll in
|
|
multithreaded code, and avoid using it in library code.
|
|
|
|
* Stem:
|
|
+ Stemming algorithms added for Irish, Lithuanian, Nepali and Tamil.
|
|
+ Merge Snowball compiler changes which improve code generation.
|
|
+ Merge optimisations to the Arabic and Turkish stemmers.
|
|
|
|
* testsuite:
|
|
+ Fix duplicate test in apitest closedb10 testcase.
|
|
|
|
* See also https://xapian.org/docs/xapian-core-1.4.7/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jul 24 09:11:32 UTC 2018 - jengelh@inai.de
|
|
|
|
- Fix RPM groups.
|
|
- Trim bias and redundancies from description.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jul 3 09:21:00 UTC 2018 - alarrosa@suse.com
|
|
|
|
- Update to 1.4.6:
|
|
* API classes now support C++11 move semantics when using a compiler which
|
|
we are confident supports them (currently compilers which define
|
|
__cplusplus >= 201103 plus a special check for MSVC 2015 or later).
|
|
C++11 move semantics provide a clean and efficient way for threaded code to
|
|
hand-off Xapian objects to worker threads, but in this case it's very
|
|
unhelpful for availability of these semantics to vary by compiler as it
|
|
quietly leads to a build with non-threadsafe behaviour. To address this,
|
|
user code can #define XAPIAN_MOVE_SEMANTICS before #include <xapian.h> to
|
|
force this on, and will then get a compilation failure if the compiler
|
|
lacks suitable support.
|
|
|
|
* MSet::snippet():
|
|
+ We were only escaping output for HTML/XML in some cases, which would
|
|
potentially allow HTML to be injected into output (this fixes
|
|
bnc#1099925, CVE-2018-0499).
|
|
+ Include certain leading non-word characters in snippets. Previously we
|
|
started the snippet at the start of the first actual word, but there are
|
|
various cases where including non-word characters in front of the actual
|
|
word adds useful context or otherwise aids comprehension.
|
|
|
|
* Add MSetIterator::get_sort_key() method. The sort key has always been
|
|
available internally, but wasn't exposed via the public API before, which
|
|
seems like an oversight as the collapse key has long been available.
|
|
|
|
* Database::compact():
|
|
+ Allow Compactor::resolve_duplicate_metadata() implementations to delete
|
|
entries. Previously if an implementation returned an empty string this
|
|
would result in a user meta-data entry with an empty value, which isn't
|
|
normally achievable (empty meta-data values aren't stored), and so will
|
|
cause odd behaviour. We now handle an empty returned value by
|
|
interpreting it in the natural way - it means that the merged result is
|
|
to not set a value for that key in the output database.
|
|
+ Since 1.3.5 compacting a WritableDatabase with uncommitted changes throws
|
|
Xapian::InvalidOperationError when compacting to a single-file glass
|
|
database. This release adds similar checks for chert and when compacting
|
|
to a multiple-file glass database.
|
|
+ In the unlikely event that the total number of documents or the total
|
|
length of all documents overflow when trying to compact a multi-database,
|
|
we throw an exception. This is now a DatabaseError exception instead of a
|
|
const char* exception (a hang-over from before this code was turned into a
|
|
public API in the library).
|
|
|
|
* See also https://xapian.org/docs/xapian-core-1.4.6/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Dec 14 10:43:38 UTC 2017 - alarrosa@suse.com
|
|
|
|
- Update to 1.4.5:
|
|
* Add Database::get_total_length() method. Previously you had to calculate
|
|
this from get_avlength() and get_doccount(), taking into account rounding
|
|
issues. But even then you couldn't reliably get the exact value when total
|
|
length is large since a double's mantissa has more limited precision than an
|
|
unsigned long long.
|
|
* Add Xapian::iterator_rewound() for bidirectional iterators, to test if the
|
|
iterator is at the start (useful for testing whether we're done when
|
|
iterating backwards).
|
|
* DatabaseOpeningError exceptions now provide errno via get_error_string()
|
|
rather than turning it into a string and including it in the exception
|
|
message.
|
|
* WritableDatabase::replace_document(): when passed a Document object which
|
|
came from a database and has unmodified values, we used to always read
|
|
those values into a memory structure. Now we only do this if the document
|
|
is being replaced to the same document ID which it came from, which should
|
|
make other cases a bit more efficient.
|
|
* Enquire::get_eset(): When approximating term frequencies we now round to the
|
|
nearest integer - previously we always rounded down.
|
|
* See also https://xapian.org/docs/xapian-core-1.4.5/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Jun 30 15:46:49 UTC 2017 - alarrosa@suse.com
|
|
|
|
- Update to 1.4.4:
|
|
* Database::check():
|
|
+ Fix checking a single table - changes in 1.4.2 broke such checks unless
|
|
you specified the table without any extension.
|
|
+ Errors from failing to find the file specified are now thrown as
|
|
DatabaseOpeningError (was DatabaseError, of which DatabaseOpeningError is
|
|
a subclass so existing code should continue to work). Also improved the
|
|
error message when the file doesn't exist is better.
|
|
* Drop OP_SCALE_WEIGHT over OP_VALUE_RANGE, OP_VALUE_GE and OP_VALUE_LE in
|
|
the Query constructor. These operators always return weight 0 so
|
|
OP_SCALE_WEIGHT over them has no effect. Eliminating it at query
|
|
construction time is cheap (we only need to check the type of the
|
|
subquery), eliminates the confusing "0 * " from the query description,
|
|
and means the OP_SCALE_WEIGHT Query object can be released sooner.
|
|
Inspired by Shivanshu Chauhan asking about the query description on IRC.
|
|
* Drop OP_SCALE_WEIGHT on the right side of OP_AND_NOT in the Query
|
|
constructor. OP_AND_NOT takes no weight from the right so OP_SCALE_WEIGHT
|
|
has no effect there. Eliminating it at query construction time is cheap
|
|
(just need to check the subquery's type), eliminates the confusing "0 * "
|
|
from the query description, and means the OP_SCALE_WEIGHT object can be
|
|
released sooner.
|
|
* See also https://xapian.org/docs/xapian-core-1.4.4/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Feb 1 09:40:00 UTC 2017 - alarrosa@suse.com
|
|
|
|
- Update to 1.4.3:
|
|
* MSet::snippet(): Favour candidate snippets which contain more of a diversity
|
|
of matching terms by discounting the relevance of repeated terms using an
|
|
exponential decay. A snippet which contains more terms from the query is
|
|
likely to be better than one which contains the same term or terms multiple
|
|
times, but a repeated term is still interesting, just less with each
|
|
additional appearance. Diversity issue highlighted by Robert Stepanek's
|
|
patch in https://github.com/xapian/xapian/pull/117 - testcases taken from his
|
|
patch.
|
|
|
|
* MSet::snippet(): New flag SNIPPET_EMPTY_WITHOUT_MATCH to get an empty snippet
|
|
if there are no matches in the text passed in. Implemented by Robert
|
|
Stepanek.
|
|
|
|
* Round MSet::get_matches_estimated() to an appropriate number of significant
|
|
figures. The algorithm used looks at the lower and upper bound and where the
|
|
estimate sits between them, and then picks an appropriate number of
|
|
significant figures. Thanks to Sébastien Le Callonnec for help sorting out a
|
|
portability issue on OS X.
|
|
|
|
* Add Database::locked() method - where possible this non-invasively checks if
|
|
the database is currently open for writing, which can be useful for
|
|
dashboards and other status reporting tools.
|
|
|
|
* See also https://xapian.org/docs/xapian-core-1.4.3/NEWS
|
|
|
|
- Update to 1.4.2:
|
|
* Add XAPIAN_AT_LEAST(A,B,C) macro.
|
|
|
|
* MSet::snippet(): Optimise snippet generation - it's now ~46% faster in a
|
|
simple test.
|
|
|
|
* Add Xapian::DOC_ASSUME_VALID flag which tells Database::get_document() that
|
|
it doesn't need to check that the passed docid is valid. Fixes #739,
|
|
reported by Germán M. Bravo.
|
|
|
|
* TfIdfWeight: Add support for the L wdf normalisation. Patch from Vivek Pal.
|
|
|
|
* BB2Weight: Fix weights when database has just one document. Our existing
|
|
attempt to clamp N to be at least 2 was ineffective due to computing
|
|
N - 2 < 0 in an unsigned type.
|
|
|
|
* DPHWeight: Fix reversed sign in quadratic formula, making the upper bound a
|
|
tiny amount higher.
|
|
|
|
* DLHWeight: Correct upper bound which was a bit too low, due to flawed logic
|
|
in its derivation. The new bound is slightly less tight (by a few percent).
|
|
|
|
* DLHWeight,DPHWeight: Avoid calculating log(0) when wdf is equal to the
|
|
document length.
|
|
|
|
* TermGenerator: Handle stemmer returning empty string - the Arabic stemmer
|
|
can currently do this (e.g. for a single tatweel) and user stemmers can too.
|
|
Fixes #741, reported by Emmanuel Engelhart.
|
|
|
|
* Database::check(): Fix check that the first docid in each doclength chunk is
|
|
more than the last docid in the previous chunk - this code was in the wrong
|
|
place so didn't actually work.
|
|
|
|
* Database::get_unique_terms(): Clamp returned value to be <= document length.
|
|
Ideally get_unique_terms() ought to only count terms with wdf > 0, but that's
|
|
expensive to calculate on demand.
|
|
|
|
* See also https://xapian.org/docs/xapian-core-1.4.2/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Nov 11 10:02:34 UTC 2016 - alarrosa@suse.com
|
|
|
|
- Update to 1.4.1
|
|
* Constructing a Query for a non-reference counted PostingSource object will
|
|
now try to clone the PostingSource object (as happened in 1.3.4 and
|
|
earlier). This clone code was removed as part of the changes in 1.3.5 to
|
|
support optional reference counting of PostingSource objects, but that breaks
|
|
the case when the PostingSource object is on the stack and goes out of scope
|
|
before the Query object is used. Issue reported by Till Schäfer and analysed
|
|
by Daniel Vrátil in a bug report against Akonadi:
|
|
https://bugs.kde.org/show_bug.cgi?id=363741
|
|
|
|
* Add BM25PlusWeight class implementing the BM25+ weighting scheme, implemented
|
|
by Vivek Pal (https://github.com/xapian/xapian/pull/104).
|
|
|
|
* Add PL2PlusWeight class implementing the PL2+ weighting scheme, implemented
|
|
by Vivek Pal (https://github.com/xapian/xapian/pull/108).
|
|
|
|
* LMWeight: Implement Dir+ weighting scheme as DIRICHLET_PLUS_SMOOTHING.
|
|
Patch from Vivek Pal.
|
|
|
|
* Add CoordWeight class implementing coordinate matching. This can be useful
|
|
for specialised uses - e.g. to implement sorting by the number of matching
|
|
filters.
|
|
|
|
* DLHWeight,DPHWeight,PL2Weight: With these weighting schemes, the formulae
|
|
can give a negative weight contribution for a term in extreme cases. We
|
|
used to try to handle this by calculating a per-term lower bound on the
|
|
contribution and subtracting this from the contribution, but this idea
|
|
is fundamentally flawed as the total offset it adds to a document depends on
|
|
what combination of terms that document matches, meaning in general the
|
|
offset isn't the same for every matching document. So instead we now clamp
|
|
each term's weight contribution to be >= 0.
|
|
|
|
* TfIdfWeight: Always scale term weight by wqf - this seems the logical
|
|
approach as it matches the weighting we'd get if we weighted every non-unique
|
|
term in the query, as well as being explicit in the Piv+ formula.
|
|
|
|
* Fix OP_SCALE_WEIGHT to work with all weighting schemes - previously it was
|
|
ignored when using PL2Weight and LMWeight.
|
|
|
|
* PL2Weight: Greatly improve upper bound on weight:
|
|
+ Split the weight equation into two parts and maximise each separately as
|
|
that gives an easily solvable problem, and in common cases the maximum is
|
|
at the same value of wdfn for both parts. In a simple test, the upper
|
|
bounds are now just over double the highest weight actually achieved -
|
|
previously they were several hundred times. This approach was suggested by
|
|
Aarsh Shah in: https://github.com/xapian/xapian/pull/48
|
|
+ Improve upper bound on normalised wdf (wdfn) - when wdf_upper_bound >
|
|
doclength_lower_bound, we get a tighter bound by evaluating at
|
|
wdf=wdf_upper_bound. In a simple test, this reduces the upper bound on
|
|
wdfn by 36-64%, and the upper bound on the weight by 9-33%.
|
|
|
|
* PL2Weight: Fix calculation of upper_bound when P2>0. P2 is typically
|
|
negative, but for a very common term it can be positive and then we should
|
|
use wdfn_lower not wdfn_upper to adjust P_max.
|
|
|
|
* Weight::unserialise(): Check serialised form is empty when unserialising
|
|
parameter-free schemes BoolWeight, DLHWeight and DPHWeight.
|
|
|
|
* TermGenerator::set_stopper_strategy(): New method to control how the Stopper
|
|
object is used. Patch from Arnav Jain.
|
|
|
|
* QueryParser: Fix handling of CJK query over multiple prefixes. Previously
|
|
all the n-gram terms were AND-ed together - now we AND together for each
|
|
prefix, then OR the results. Fixes #719, reported by Aaron Li.
|
|
|
|
* Add Database::get_revision() method which provides access to the database
|
|
revision number for chert and glass, intended for use by xapiand. Marked
|
|
as experimental, so we don't have to go through the usual deprecation cycle
|
|
if this proves not to be the approach we want to take. Fixes #709,
|
|
reported by German M. Bravo.
|
|
|
|
* Mark RangeProcessor constructor as `explicit`.
|
|
|
|
* See also https://xapian.org/docs/xapian-core-1.4.1/NEWS
|
|
|
|
- A compiler with support for C++11 is required, so
|
|
specify BuildRequires gcc-c++ >= 4.6
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Jul 9 06:25:35 UTC 2016 - tittiatcoke@gmail.com
|
|
|
|
- Update to 1.4.0
|
|
* API
|
|
+ Update to Unicode 9.0.0
|
|
+ Reimplement ESet and ESetIterator
|
|
+ MSetIterator and ESetIterator are now STL-compatible
|
|
random_access_iterators
|
|
* See also http://xapian.org/docs/xapian-core-1.4.0/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Apr 13 07:07:04 UTC 2016 - tittiatcoke@gmail.com
|
|
|
|
- Update to 1.2.23
|
|
* API
|
|
+ PostingSource: Public member variables are now wrapped by methods
|
|
* chert backend
|
|
+ xapian-check now performs additional consistency checks for chert.
|
|
* omega
|
|
+ Fix HTML/XML entity decoding to be O(n) not O(n²) - indexing
|
|
HTML/XML with a lot of entities is now much faster.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu May 21 08:54:55 UTC 2015 - tittiatcoke@gmail.com
|
|
|
|
- Update to 1.2.21
|
|
* API:
|
|
+ QueryParser: Extend the set of characters allowed in the
|
|
start of a range to be anything except for '(' and characters <= ' '.
|
|
|
|
* matcher:
|
|
+ Reimplement OP_PHRASE for non-exact phrases.
|
|
+ Reimplement OP_NEAR - the new implementation consistently
|
|
requires the terms to occur at different positions, and fixes
|
|
some previously missed matches.
|
|
+ Fix a reversed check for picking the shorter position list
|
|
for an exact phrase of two terms.
|
|
+ When matching an exact phrase, if a term doesn't occur where
|
|
we want, use its actual position to advance the anchor term,
|
|
rather than just checking the next position of the anchor term.
|
|
|
|
* brass backend:
|
|
+ Fix cursor versioning to consider cancel() and reopen() as
|
|
events where the cursor version may need incrementing,
|
|
and flag the current cursor version as used when a cursor is rebuilt.
|
|
+ Avoid using file descriptions < 3 for writable database tables,
|
|
as it risks corruption if some code in the same process tries
|
|
to write to stdout or stderr without realising it is closed.
|
|
|
|
* chert backend:
|
|
+ Fix cursor versioning to consider cancel() and reopen() as
|
|
events where the cursor version may need incrementing,
|
|
and flag the current cursor version as used when a cursor is rebuilt.
|
|
+ Avoid using file descriptions < 3 for writable database tables,
|
|
as it risks corruption if some code in the same process tries
|
|
to write to stdout or stderr without realising it is closed.
|
|
|
|
* flint backend:
|
|
+ Fix cursor versioning to consider cancel() and reopen() as
|
|
events where the cursor version may need incrementing,
|
|
and flag the current cursor version as used when a cursor is rebuilt.
|
|
|
|
|
|
* remote backend:
|
|
|
|
+ Fix sort by value when multiple databases are in use and one or
|
|
more are remote.
|
|
|
|
* build system:
|
|
|
|
+ The compiler ABI check in the public API headers now issues a
|
|
warning (instead of an error) for an ABI mismatch for ABI versions
|
|
2 and later (which means GCC >= 3.4).
|
|
+ xapian-config,xapian-core.pc: When compiling with xlC on AIX, the
|
|
reported --cxxflags/--cflags now include -D_LARGE_FILES=1 as this
|
|
is defined for the library, and defining it changes the ABI of
|
|
std::string with this compiler, so it must also be defined when
|
|
building code using the Xapian API.
|
|
+ xapian-core.pc: Include --enable-runtime-pseudo-reloc in --libs
|
|
output for mingw and cygwin, like xapian-config does.
|
|
+ xapian-core.pc: Fix include directory reported by `pkg-config --cflags`.
|
|
+ xapian-config: Fix typo so cached result of test in is_uninstalled()
|
|
is actually used on subsequent calls.
|
|
+ configure: Changes in 1.2.19 broke the custom macro we use to probe
|
|
for supported compiler flags such that the flags never got used.
|
|
+ configure: Set default value for AUTOM4TE before AC_OUTPUT so the
|
|
default will actually get used.
|
|
+ soaktest: Link with libtool's '-no-install' or '-no-fast-install',
|
|
like we already do for other test programs, which means that libtool
|
|
doesn't need to generate shell script wrappers for them on most platforms.
|
|
|
|
* documentation:
|
|
+ API documentation: Minor wording tweaks and formatting improvements.
|
|
+ docs/deprecation.rst: Add deprecation of omindex --preserve-nonduplicates
|
|
which happened in 1.2.4.
|
|
+ HACKING: libtool 2.4.6 is now used for bootstrapping snapshots and releases.
|
|
|
|
* tools:
|
|
+ xapian-compact: Make sure we open all the tables of input databases at the
|
|
same revision.
|
|
+ xapian-metadata: Add 'list' subcommand to list all the metadata keys.
|
|
+ xapian-replicate: Fix connection timeout to be 10 seconds rather than 10000
|
|
seconds (the incorrect timeout has been the case since 1.2.3).
|
|
+ xapian-replicate: Set SO_KEEPALIVE for xapian-replicate's connection to the
|
|
master, and add command line option to allow setting socket-level timeouts
|
|
(SO_RCVTIMEO and SO_SNDTIMEO) on platforms that support them.
|
|
+ xapian-replicate-server: Avoid potentially reading uninitialised data if a
|
|
changeset file is truncated.
|
|
|
|
* portability:
|
|
+ Add spaces between literal strings and macros which expand to literal strings
|
|
for C++11 compatibility.
|
|
+ ValueCountMatchSpy::top_values_begin(): Fix the comparison function not to
|
|
return true for two equal elements, which manifests as incorrect sorting in
|
|
some cases when using clang's libc++ (which recent OS X versions do).
|
|
+ apitest: The adddoc5 testcase fails under clang due to an exception handling
|
|
bug, so just #ifdef out the problematic part of the testcase when building
|
|
with clang for now.
|
|
+ configure: Improve the probe for whether the test harness can use RTTI to
|
|
work for IBM's xlC compiler (which defaults to not generating RTTI).
|
|
+ Use F_DUPFD where available to dup to a file descriptor which is >= 2, rather
|
|
than calling dup() until we get one.
|
|
+ When unserialising a double, avoid reading one byte past the end of the
|
|
serialised value.
|
|
+ When unserialising a double, add missing cast to unsigned char when we check
|
|
if the value will fit in the double type.
|
|
+ Fix incorrect use of "delete" which should be "delete []". This is
|
|
undefined behaviour in C++, though the type is POD, so in practice this
|
|
probably worked OK on many platforms.
|
|
|
|
- Drop patch 0001-backends-chert-chert_cursor.cc-backends-chert-chert_.patch
|
|
due to upstream inclusion
|
|
|
|
-------------------------------------------------------------------
|
|
Sat May 2 01:27:33 UTC 2015 - hrvoje.senjan@gmail.com
|
|
|
|
- Add 0001-backends-chert-chert_cursor.cc-backends-chert-chert_.patch
|
|
from upstream (kde#341990, http://trac.xapian.org/ticket/675)
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Mar 12 07:34:11 UTC 2015 - mpluskal@suse.com
|
|
|
|
- Update to 1.2.20
|
|
* chert backend
|
|
+ After splitting a block, we always insert the new block in
|
|
the parent right after the block it was split from - there's
|
|
no need to binary chop.
|
|
* build system
|
|
+ Generate and install a file for pkg-config.
|
|
+ configure: Update link to cygwin FAQ in error message.
|
|
* tools
|
|
+ xapian-check: For chert and brass, cross-check the position
|
|
and postlist tables to detect positional data for non-existent
|
|
documents.
|
|
* portability
|
|
+ When locking a database for writing, use F_OFD_SETLK where
|
|
available, which avoids having to fork() a child process to
|
|
hold the lock. This currently requires Linux kernel >= 3.15,
|
|
but it has been submitted to POSIX so hopefully will be widely
|
|
supported eventually. Thanks to Austin Clements for pointing
|
|
out this now exists.
|
|
+ Fix detection of fdatasync(), which appears to have been
|
|
broken practically forever - this means we've probably been
|
|
using fsync() instead, which probably isn't a big additional
|
|
overhead. Thanks to Vlad Shablinsky for helping with Mac
|
|
OS X portability of this fix.
|
|
+ configure: Define MINGW_HAS_SECURE_API under mingw to get
|
|
_putenv_s() declared in stdlib.h.
|
|
+ Use POSIX O_NONBLOCK in preference to O_NDELAY - the
|
|
semantics of the latter differ between BSD and System V.
|
|
+ According to POSIX, strerror() may not be thread safe, so
|
|
use alternative thread-safe ways to translate errno values
|
|
where possible.
|
|
+ On Microsoft Windows, avoid defining EADDRINUSE, etc if
|
|
they're already defined, and use WSAE* constants un-negated -
|
|
they start from a high value so won't collide with E*
|
|
constants.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Feb 20 09:57:10 UTC 2015 - mpluskal@suse.com
|
|
|
|
- Tiny spec file cleanups
|
|
- Add gpg signature
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Oct 21 12:18:41 UTC 2014 - tittiatcoke@gmail.com
|
|
|
|
- Update to 1.2.19
|
|
- API:
|
|
* Xapian::BM5Weight:
|
|
+ Improve BM25 upper bound in the case when our wdf upper
|
|
bound > our document length lower bound.
|
|
+ Pre-multiply termweight by (param_k1 + 1) rather than
|
|
doing it for every weighted term in every document considered.
|
|
- testsuite:
|
|
* Don't report apparent leaks of fds opened on /dev/urandom
|
|
- matcher:
|
|
* Fix false matches reported for non-exact phrases in some cases.
|
|
- build system:
|
|
* For Sun's C++ compiler, pass -library=Crun separately since
|
|
libtool looks for " -library=stlport4 " (with the spaces).
|
|
* Remove .replicatmp (created by the test suite) upon "make clean".
|
|
- documentation:
|
|
* include/xapian/compactor.h: Fix formatting of doxygen comment.
|
|
* HACKING: freecode no longer accepts updates, so drop that item
|
|
from the release checklist.
|
|
* docs/overview.rst: Add missing database path to example of using
|
|
xapian-progsrv in a stub database file.
|
|
- portability:
|
|
* Suppress unused typedef warnings from debugging logging macros,
|
|
which occur in functions which always exit via throwing an
|
|
exception when compiling with recent versions of GCC or clang.
|
|
* Fix debug logging code to compile with clang.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Sep 11 16:20:33 UTC 2014 - hrvoje.senjan@gmail.com
|
|
|
|
- Add baselibs.conf, needed by baloo 32bit libraries
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Apr 28 08:10:37 UTC 2014 - tittiatcoke@gmail.com
|
|
|
|
- Switch the SSE instruction set of for x86 builds.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jan 29 22:10:21 UTC 2014 - hrvoje.senjan@gmail.com
|
|
|
|
- Update to 1.2.17
|
|
- API:
|
|
* Enquire::set_sort_by_relevance_then_value() and
|
|
Enquire::set_sort_by_relevance_then_key(): Fix sense of reverse
|
|
parameter.
|
|
* BM25Weight: Fix case where (k1 == 0 || b == 0) but k2 != 0.
|
|
* Unicode::tolower(): Fix to give correct results for U+01C5,
|
|
U+01C8, U+01CB, and U+01F2
|
|
- testsuite:
|
|
* Automatically probe for and hook in eatmydata to the testsuite
|
|
using the wrapper script it now includes.
|
|
* Fix apitest to build when brass, chert or flint are disabled.
|
|
- brass backend:
|
|
* Fix handling of invalid block sizes passed to Xapian::Brass::open()
|
|
- the size gets fixed as documented, but the uncorrected size
|
|
was passed to the base file (and abort() was called if 0
|
|
was passed).
|
|
* Validate "dir_end" when reading a block. (fixes #592)
|
|
- chert backend:
|
|
* Fix handling of invalid block sizes passed to Xapian::Chert::open()
|
|
- the size gets fixed as documented, but the uncorrected size was
|
|
passed to the base file (and abort() was called if 0 was passed).
|
|
* Validate "dir_end" when reading a block. (fixes #592)
|
|
- flint backend:
|
|
* Fix handling of invalid block sizes passed to Xapian::Flint::open()
|
|
- the size gets fixed as documented, but the uncorrected size was
|
|
passed to the base file (and abort() was called if 0 was passed).
|
|
* Validate "dir_end" when reading a block. (fixes #592)
|
|
- build system:
|
|
* configure: Improve reporting of GCC version.
|
|
* Use -no-fast-install on platforms where -no-install causes
|
|
libtool to emit a warning.
|
|
* docs/Makefile.am: Fix handling of MAINTAINER_NO_DOCS.
|
|
* Include UnicodeData.txt and the script to generate the unicode
|
|
tables from it.
|
|
- documentation:
|
|
* postingsource.rst: Clarify a couple of points
|
|
- portability:
|
|
* Protect the ValueIterator::check() method against Mac OS X SDK
|
|
headers which define a check() macro.
|
|
* Fix warning from xlC compiler.
|
|
* Avoid use of grep -e in configure, as /usr/bin/grep on Solaris
|
|
doesn't support -e.
|
|
* Fix check for flags which might be needed for ANSI mode for
|
|
compilers called 'cxx'.
|
|
* configure: Improve handling of Sun's C++ compiler - trick libtool
|
|
into not adding -library=Cstd, and prefer -library=stdcxx4 if
|
|
supported. Explicitly add -library=Crun which seems to be required,
|
|
even though the documentation suggests otherwise.
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Dec 15 20:24:21 UTC 2013 - hrvoje.senjan@gmail.com
|
|
|
|
- Update to 1.2.16
|
|
- API:
|
|
* PositionIterator,PostingIterator,TermIterator,ValueIterator:
|
|
Don't segfault if skip_to() or check() is called on an iterator
|
|
which is already at_end().
|
|
* ValueCountMatchSpy: get_description() on a default-constructed
|
|
ValueCountMatchSpy object no longer fails when xapian-core is
|
|
built with --enable-log.
|
|
* ValueCountMatchSpy: get_total() on a default-constructed
|
|
ValueCountMatchSpy object now returns 0 rather than segfaulting.
|
|
- brass backend:
|
|
* When moving a cursor on a read-only table, check if the block we
|
|
want is in the internal cursor. We already do this for a
|
|
writable table, as it is necessary for correctness, but it's a
|
|
cheap check and may avoid asking the OS for a block we actually
|
|
already have.
|
|
* Correctly report the database as closed rather than
|
|
'Bad file descriptor' in certain cases.
|
|
* Reuse a cursor for reading values from valuestreams rather than
|
|
creating a new one each time. This can dramatically reduce the
|
|
number of blocks redundantly reread when sorting by value.
|
|
The rereads will generally get served from VM cache, but there's
|
|
still an overhead to that.
|
|
- chert backend:
|
|
* When moving a cursor on a read-only table, check if the block
|
|
we want is in the internal cursor. We already do this for a
|
|
writable table, as it is necessary for correctness, but it's
|
|
a cheap check and may avoid asking the OS for a block we actually
|
|
already have.
|
|
* Correctly report the database as closed rather than
|
|
'Bad file descriptor' in certain cases.
|
|
* Reuse a cursor for reading values from valuestreams rather than
|
|
creating a new one each time. This can dramatically reduce the
|
|
number of blocks redundantly reread when sorting by value.
|
|
The rereads will generally get served from VM cache, but there's
|
|
still an overhead to that.
|
|
- flint backend:
|
|
* When moving a cursor on a read-only table, check if the block we
|
|
want is in the internal cursor. We already do this for a writable
|
|
table, as it is necessary for correctness, but it's a cheap check
|
|
and may avoid asking the OS for a block we actually already have.
|
|
* Correctly report the database as closed rather than
|
|
'Bad file descriptor' in certain cases.
|
|
- tools:
|
|
* xapian-chert-update: Fix -b to work rather than always
|
|
segfaulting (reported in http://bugs.debian.org/716484).
|
|
* xapian-chert-update: The documented alias --blocksize for -b has
|
|
never actually been supported, so just drop mentions of it
|
|
from --help and the man page.
|
|
- xapian-check:
|
|
* Fix chert database check that first docid in each doclength
|
|
chunk is more than the last docid in the previous chunk
|
|
- previously this didn't actually work.
|
|
* Fix database check not to falsely report "position table: Junk
|
|
after position data" whenever there are 7 unused bits (7 is OK,
|
|
*more* than 7 isn't).
|
|
* Fix to report block numbers correctly for links within the B-tree.
|
|
* If the METAINFO key is missing, only report it once per table.
|
|
* Fix database consistency checking to always open all the tables
|
|
at the same revision - not doing this could lead to false errors
|
|
being reported after a commit interrupted by the process being
|
|
killed or the machine crashing.
|
|
- Change tarball to xz. Added xz BuildRequires: xz for that purpose
|
|
|
|
-------------------------------------------------------------------
|
|
Thu May 30 17:36:39 UTC 2013 - tittiatcoke@gmail.com
|
|
|
|
- Update to version 1.2.15
|
|
* See http://svn.xapian.org/*checkout*/tags/1.2.15/xapian-core/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Dec 21 10:22:07 UTC 2012 - mlin@suse.com
|
|
|
|
- Update to version 1.2.12
|
|
* 1.2.11 had its library version information incorrectly set.
|
|
This resulted in the shared library having an incorrect SONAME.
|
|
This release has been made to fix this problem.
|
|
* Fix issue with running AND, OR and XOR queries against a
|
|
database with no documents in it - this was leading to a divide
|
|
by zero, which led to MSet::get_matches_estimated() reporting
|
|
2147483648 on i386.
|
|
* Don't count unweighted subqueries of MultiAndPostList in
|
|
percentage calculations, as OP_FILTER maps to MultiAndPostList
|
|
now. (ticket#590)
|
|
* When compacting, if the output database is empty, don't write
|
|
out a metainfo tag. Take care not to divide by zero when
|
|
computing the percentage size change for a table.
|
|
(brass and chert backend)
|
|
* Add new QueryParser::STEM_ALL_Z stemming strategy, which
|
|
stems all terms and adds a Z prefix.
|
|
* Add TermGenerator::set_stemming_strategy() method, with
|
|
strategies which correspond to those of QueryParser.
|
|
* Correct "BM25Weight" to "TradWeight" in exception message
|
|
from TradWeight.
|
|
* We were failing to call init() for user-defined Weight objects
|
|
providing the term-independent weight. These now get called
|
|
with init(0.0).
|
|
* Xapian::Auto::open_stub() now throws a Xapian::DatabaseOpeningError
|
|
exception if the stub file can't be opened. Previously we
|
|
failed to check for this condition, which resulted in us
|
|
treating the file as empty.
|
|
* See http://svn.xapian.org/*checkout*/tags/1.2.12/xapian-core/NEWS
|
|
* http://svn.xapian.org/*checkout*/tags/1.2.11/xapian-core/NEWS
|
|
* http://svn.xapian.org/*checkout*/tags/1.2.10/xapian-core/NEWS
|
|
* http://svn.xapian.org/*checkout*/tags/1.2.9/xapian-core/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Dec 29 11:31:53 CET 2011 - dmueller@suse.de
|
|
|
|
- update to 1.2.8:
|
|
* Add support to TermGenerator and QueryParser for indexing and searching CJK
|
|
text using n-grams. Currently this is only enabled when the environmental
|
|
variable XAPIAN_CJK_NGRAM is set to a non-empty value.
|
|
* overview.html,quickstart.html: Fix several factual errors.
|
|
* Improve documentation comments for several methods.
|
|
* Add documentation for function parameters which didn't have it.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Nov 28 19:46:42 UTC 2011 - coolo@suse.com
|
|
|
|
- avoid packaging files twice
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Sep 13 09:29:48 UTC 2011 - prusnak@opensuse.org
|
|
|
|
- updated to 1.2.7
|
|
|
|
-------------------------------------------------------------------
|
|
Tue May 3 17:55:49 UTC 2011 - tittiatcoke@gmail.com
|
|
|
|
- Update to xapian-core-1.2.5
|
|
* See http://svn.xapian.org/*checkout*/tags/1.2.5/xapian-core/NEWS
|
|
|
|
-----------------------------------------------------------------
|
|
Sat May 16 19:26:33 CET 2009 - tittiatcoke@gmail.com
|
|
|
|
- Updated to xapian-core-1.0.12
|
|
+ See http://svn.xapian.org/*checkout*/tags/1.0.12/xapian-core/NEWS
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Mar 18 13:34:33 CET 2009 - tittiatcoke@gmail.com
|
|
|
|
- Updated to xapian-core-1.0.11
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Nov 19 23:41:33 CET 2007 - mrueckert@suse.de
|
|
|
|
- added xapian-core-1.0.4_gcc43.patch:
|
|
add missing includes for gcc 4.3
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Nov 19 22:00:09 CET 2007 - mrueckert@suse.de
|
|
|
|
- update to 1.0.4
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Jun 24 11:41:40 CEST 2007 - mrueckert@suse.de
|
|
|
|
- update to 1.0.1
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Apr 1 21:15:32 CEST 2007 - mrueckert@suse.de
|
|
|
|
- update to 0.9.10
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Nov 11 05:10:49 CET 2006 - mrueckert@suse.de
|
|
|
|
- update to 0.9.9:
|
|
many smaller changes
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Nov 4 12:08:31 CET 2006 - mrueckert@suse.de
|
|
|
|
- do not package .deps and .libs in the examples dir
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Nov 4 11:41:25 CET 2006 - mrueckert@suse.de
|
|
|
|
- update to 0.9.8:
|
|
many small fixes
|
|
|