SHA256
1
0
forked from pool/xapian-core

Accepting request 650355 from home:alarrosa:branches:server:search

- 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

OBS-URL: https://build.opensuse.org/request/show/650355
OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-core?expand=0&rev=87
This commit is contained in:
Dirk Mueller 2018-11-20 12:08:23 +00:00 committed by Git OBS Bridge
parent 2027be7dbb
commit ea82273e18
6 changed files with 175 additions and 24 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:13f08a0b649c7afa804fa0e85678d693fd6069dd394c9b9e7d41973d74a3b5d3
size 2874172

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEECOJAD/f+j+3jrLUoGBR7BzutKwcFAltRLFwACgkQGBR7Bzut
Kwf25hAAp4lp2BMkQ8Fjw86e9Z7xqFaMebm8JcZoDcr/pDiIGsf2pTfF/T1fgSiZ
lZ4/aZXOyTZltX9hIKI68Wi48BHIhvjF7m43c9wRuus2s+8fpGyf6T1LRuFBbrU2
zX75YH79pnQl8SSPVeGqhnvLqfy1nxRqLFeP20tTFk+7kZTC95+t5jfEvfusAKNI
3vTgf3y+R0jKYjCpl0u+YHiujeO/h65A7wCocVmbt1q2bnh8MdK1NwYEIJDr2C6q
pvPlNQH0M+wMLBA4UM23uk+gWx2P4drHV2ILxSsrh1P15xxH7AWOae299kxWrytO
9gVk3Zx5TC0SDg5SLrgux0t07ux1XNaEBSA6PC5JcpKL++iWPOywT30YKLkcdhtf
3AS27sS/Ktr5Z2I9pWa1nCoM874n3+Bt1NUAIVXeYRIUM+nCm7i0cd8Nukh1CJgm
EULOo/8E4iQCm0+cJwzbm+PSE9aGyG7HFJQ5UtXrT5Orc2OHeNLaqXXgJQfREl36
tU15l8L68vpzkb7Zf5G48P0sMT7E3ceZ/eVP0qnGzGDdCtS+n0+SF024eIP55gM1
N/WampUZedqfrhvESW0n5ZJKSUatWmwx5uZnLhMnVkLwjpSlDTvUk7RZ/5XDWhUu
iptAU+L2UNEx8RMWInbAd28Q0TvEkycNp9j9QSiVtAwzhAiD1TI=
=4wGa
-----END PGP SIGNATURE-----

3
xapian-core-1.4.9.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cde9c39d014f04c09b59d9c21551db9794c10617dc69ab4c9826352a533df5cc
size 2880024

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEECOJAD/f+j+3jrLUoGBR7BzutKwcFAlvc02IACgkQGBR7Bzut
KwcziQ//eRQms+eLdkt6e1moYks1fDWuy1xxgTPpdh+UMR4WAM/aKV2Py9io1bZw
etGMP+Ylb1qUlM/tcD5bnt4kCM3sLPJ8ObTVvzjQAaibR4YtShKybAzyX3fo0zHJ
IEyQ83+q6mDzlJBZ9kdNSfjDVfAt216ecATIwhOrbIasrZR+nMetjAWDlU9NdH7i
cU78yfOdtvKCYWcdQagvQ+Ovhjx0YwdMyJG60B6upu410HetC7/NmPGY9CvbMBa5
e5xEBDQxYaLho/lr9KNlt4QLGb6enqzx8UX85KyWhl8g2EsIFcukF7j4HMyFYh2s
/Eny0l3GdlTcrwzmJvjZGFh0jwspsgB1iwhh5f7PpO+jadlgt2ujIErH0HeiV28s
q9QtcYKv94EazXEDJAOo8FYeqMUyFj5yL16uqTMBHVY14AKMmtj/pzofyvT8ZLqd
ucfnPQS10rqK0c9xkeHnJ9yNhj7R72/+8oOOmfkfc6FuPCg2QGzOka4OXHKSX6nJ
bwwOMpMwiIK++o0BeLlje+NnNblOHffQtrm1tR/KZvNKt2PmCcBuRsGzQS7jq4It
WdeaABls0S0VXBkSUrlfF+XhbEXo+XDQoJCFEyqtqGFRo/l5NIlm4YSR+EbjVdtm
VtPWa0Yjn6j4x8iysaIREN4dZNjxDZ0GjJprDyT3A+W97zT0k6g=
=gl0D
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,144 @@
-------------------------------------------------------------------
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

View File

@ -17,7 +17,7 @@
Name: xapian-core
Version: 1.4.7
Version: 1.4.9
Release: 0
Summary: The Xapian Probabilistic Information Retrieval Library
License: GPL-2.0-only
@ -100,10 +100,14 @@ make %{?_smp_mflags}
%install
make DESTDIR=%{buildroot} docdatadir=%{_docdir}/%{name} install %{?_smp_mflags}
rm -rf examples/{.libs,.deps,.dirstamp,*.o,quest,delve,simplesearch,simpleexpand,simpleindex,copydatabase,xapian-metadata}
rm -rf examples/{.libs,.deps,.dirstamp,*.o,quest,delve,simplesearch,simpleexpand,simpleindex,copydatabase,xapian-metadata,xapian-pos}
cp -vr examples %{buildroot}%{_docdir}/%{name}/
find . -name \*.spec -delete
install -m 644 AUTHORS COPYING ChangeLog README NEWS HACKING PLATFORMS ChangeLog.examples %{buildroot}%{_docdir}/%{name}
install -m 644 AUTHORS ChangeLog README NEWS HACKING PLATFORMS ChangeLog.examples %{buildroot}%{_docdir}/%{name}
# SLE12 support needs to copy this manually, since %doc would include the examples subdirectory too
%if 0%{suse_version} < 1500 && !0%{?is_opensuse}
install -m 644 COPYING %{buildroot}%{_docdir}/%{name}
%endif
%fdupes %{buildroot}%{_docdir}/%{name}
%post -n libxapian30 -p /sbin/ldconfig
@ -113,14 +117,17 @@ install -m 644 AUTHORS COPYING ChangeLog README NEWS HACKING PLATFORMS ChangeLog
%files
%defattr(-, root, root)
%dir %{_docdir}/%{name}
%{_docdir}/%{name}/AUTHORS
%if 0%{suse_version} < 1500 && !0%{?is_opensuse}
%{_docdir}/%{name}/COPYING
%else
%license COPYING
%endif
%{_docdir}/%{name}/AUTHORS
%{_docdir}/%{name}/ChangeLog
%{_docdir}/%{name}/README
%{_docdir}/%{name}/NEWS
%{_docdir}/%{name}/HACKING
%{_docdir}/%{name}/PLATFORMS
%{_docdir}/%{name}/ChangeLog.examples
%{_bindir}/xapian-tcpsrv
%{_bindir}/xapian-progsrv
%{_bindir}/quest
@ -132,6 +139,7 @@ install -m 644 AUTHORS COPYING ChangeLog README NEWS HACKING PLATFORMS ChangeLog
%{_bindir}/xapian-check
%{_bindir}/xapian-delve
%{_bindir}/xapian-metadata
%{_bindir}/xapian-pos
%{_bindir}/xapian-replicate
%{_bindir}/xapian-replicate-server
%{_mandir}/man1/xapian-check.1*
@ -143,6 +151,7 @@ install -m 644 AUTHORS COPYING ChangeLog README NEWS HACKING PLATFORMS ChangeLog
%{_mandir}/man1/xapian-progsrv.1*
%{_mandir}/man1/xapian-tcpsrv.1*
%{_mandir}/man1/xapian-metadata.1*
%{_mandir}/man1/xapian-pos.1*
%{_mandir}/man1/xapian-replicate.1*
%{_mandir}/man1/xapian-replicate-server.1*
%{_datadir}/xapian-core/
@ -170,6 +179,7 @@ install -m 644 AUTHORS COPYING ChangeLog README NEWS HACKING PLATFORMS ChangeLog
%files examples
%defattr(-, root, root)
%{_docdir}/%{name}/ChangeLog.examples
%{_docdir}/%{name}/examples/
%changelog