Changes since Release 2.2.8 are described here. A full list of all changes since BDB XML 2.1.8 is also available below.
It recommended that all users move to this release. Also see the documentation included in your download package or on our website .
None, relative to BDB XML 2.2.8, but because of the issue in [#13820] (see below) it is recommended that any containers that were:
used with BDB XML 2.2.8, and
are using node indices (DBXML_INDEX_NODES), and
have been modified using either XmlModify
or
XmlContainer::updateDocument()
.
be reindexed. This can be achieved using either dbxml_dump followed by dbxml_load, or the in-place dbxml shell command, "reindexContainer."
Added XmlDocument.getContentAsInputStream() to Java API to enable use of a java.io.InputStream object for document output [#13701]
Eliminated default constructors for Java objects [#13640]
Fixed a bug where variables declared at global scope in an XQuery expression would fail with a null pointer reference [#13588]
Fixed bug in node storage containers where concurrent applications could receive a deadlock exception that was ignored, resulting in an assertion failure or bad pointer reference [#13597]
Support for CDS now requires setting of the DB_CDB_ALLDB flag if the DB_INIT_CDB flag is set in a DB environment. This is because BDB XML modifications affect more than one DB database. This may affect existing applications, which will need to change to set the DB_CDB_ALLDB flag [#13568]
Fixed a bug where a query using descendant-or-self() would return all named elements that follow the target node in document order, rather than just returning descendants [#13618]
Changed XmlException
to DOCUMENT_NOT_FOUND when calling
XmlContainer::updateDocument()
for a document that does
not exist. Previously, it would throw with the code, DATABASE_ERROR
and errno, DB_NOTFOUND [#13691]
Fixed some problems when DbTxn
and
XmlTransaction
were used together [#13679]
Fixed a bug where, if Xerces is initialized separately from BDB XML,
and it outlives the last XmlManager
, it is
possible for it to contain a reference to deallocated memory [#13722]
Fixed a bug where adding and then deleting an index on an empty container caused an exception [#13724]
Fixed problem where an open of an existing container with a non-default page size using DB_CREATE would throw an exception from Berkeley DB with the message "Different pagesize specified on existent file" and errno EINVAL [#13768]
Fixed a bug where a crash could occur in the function, NsWriter::~NsWriter(). The problem was calling pop_back() on an empty STL vector [#13826]
Fixed a bug where the first result could be left out of query results. Certain ueries using the descendant axis are most vulnerable [#13816]
Fixed a bug where index entries could be mistakenly removed following
a document update (via XmlModify
or
XmlContainer::updateDocument
) [#13820]
Fixed XmlManager::reindexContainer()
, which
was introduced in BDB XML 2.2.8 to work correctly. Previously, the
index type would change, but the entries created would not [#13850]
Fixed a bug where some node indices on attributes failed to be optimized, resulting in slower than expected queries. This only affects containers with node indices enabled [#13642]
Fixed a bug that occurred when a user-defined function was called from more than one place in the query, and the function used either fn:collection() or fn:doc(). This happened because a query plan was generated for the user-defined function body more than once - with the last generation replacing the former. The two query plans are now combined to make the correct query plan. [#13639]
Added a global declaration of the
XmlIndexLookup
class that was missing from
php_dbxml.cpp. This resulted in undefined references to this class
that look like:
undefined symbol: php_dbxml_XmlIndexLookup_ce
Added support for building with Microsoft's Visual Studio 2005 [#13491]
Changed Windows debug information to "Program Database" consistently. This means the /Zi flag is used rather than /Z7 [#13737]
Changed debug .pdb filename for Pathan from PathanD.pdb to PathanD_7.1.pdb [#13737]
Fixed incorrect documentation regarding use of DB_DEGREE_2 in container create/open flags. The correct flag to be documented is DB_DIRTY_READ, which will be DB_READ_UNCOMMITTED in future releases that bundle DB 4.4 or higher [#13592]
Example code in the Getting Started Guide documentation was reviewed and updated to be correct [#13602]
The Getting Started Guide documentation was corrected where it erroneously stated that the XQuery expression "/Node1/Node2/Node3" would only return the first Node3 element, when it would really return all matching elements [#13604]
Changed database format from BDB XML 2.1.8 to provide better Berkeley DB Btree page fill factor. Users must read documentation on container upgrade before performing an upgrade, or there is risk of data loss [#12947]
Add XmlManager::existsContainer()
, used to
check for existence of a container in an efficient, non-destructive,
non-intrusive manner [#11018]
Implement support for "fn:doc-available()" Xquery function and default collections [#12762]
Add XmlIndexLookup
class to perform lookup
operations, including equality, range lookups, and controlling the
sort order of results (forward and reverse) [#12556]
Version 2.7 of the Xerces library is now used [#13177]
XQuery implementation has been upgraded to support the April, 2005 draft specification
Add XmlIndexLookup
class to perform lookup
operations, including equality, range lookups, and controlling the
sort order of results (forward and reverse) [#12556]
Fix a bug where XmlResults::hasNext()
and
XmlResults::peek()could
result in uncatchable exceptions
with Lazy results [#13053]
Added XmlQueryContext
get/setVariableValue
variant that takes XmlResults
to allow
sequence variables [#13060]
Add XmlManager::reindexContainer()
to allow
an application to change the index type between node-level and
document-level [#12819]
Add XmlManager::get/setDefaultSequenceIncrement() interfaces to allow control over the cache size of the DbSequence object used to allocate document ids [#13099]
Add XmlValue::BINARY as a valid XmlValue type. Add XmlValue::isBinary() interfaces to support the new type [#13221]
Add support for the DB_TXN_NOT_DURABLE flag when creating and opening
an XmlContainer
[#13263]
AddXmlManager::openContainer()
method that
takes XmlContainerType
and mode arguments
[#13285]
AddXmlContainer::getIndexNodes()
to indicate
if the container has node-level indices or not
Modify internal data structures so that fewer lockers are required when running without transactions. This eliminates many problems that appear to be locker "leaks."[#12104]
Implement April 2005 drafts of XQuery 1.0 and XPath 2.0
Implement numerous query optimizations that should increase the query speed on all storage formats. This includes support for node-level indices specified using DBXML_INDEX_NODES [#12615]
Fix a bug so that unique indices will find constraint violations within a single document and between documents in a container[#12838]
Fix a bug where index database creation could conflict with other updates [#12839]
Fix a bug in QueryPlanHolder that could cause a segment fault [#13069]
Fix a bug during container open where the containers page size is
different from the XmlManagers
default page
size [#13260]
Change path to example package from com.sleepycat.dbxml.examples.gettingStarted to dbxml.gettingStarted [#12108]
Fix a bug so that valid DatabaseException objects are now created for
all XmlExceptions
of type DATABASE_ERROR
[#12962]
Fix a bug so that XmlDocument.getMetaData() will correctly return binary metadata [#13193]
Fix a bug in XmlInputStream
so that other
classes can now be derived from this class [#13289]
Compiler information from configure is now used to set the compiler in the Perl build [#12491]
Add pre-compiled Python binaries (2.4) to the Windows binary installer
Ship copy of the pybsddb project for convenience and ease of build
Fix a bug in dbxml shell so that if h flag is not specified an attempt is made to join an environment in the current directory[#12993]
Add support for new XmlIndexLookup
object in
the dbxml shell's commands [#12556]
Add a version check to insure that languages such as Perl, Python, and PHP use a compatible version of Berkeley DB [#12681]
Change default in buildall.sh script to build thread support for Xerces platform code [#12784]
Add documentation for the c flag in dbxml shell [#12848]
Add documentation for all DatabaseConfig methods that are used
byXmlContainerConfig
that extends
DatabaseConfig [#13375]
Add support for Berkeley DB 4.4