Berkeley DB XML 2.1.7 & 2.1.8 Change Log
Upgrade Requirements:
- The database format has changed in order to fix a platform
portability problem. To upgrade your DB XML containers to 2.1.8, please
follow the steps identified in the 2.1 DB XML Reference Guide, in the
Upgrading to DB XML 2.1 section.
- DB XML 2.0 applications will need to be recompiled and relinked
using the DB XML 2.1 libraries.
- DB XML 2.1.8 is a patch release for DB XML 2.1.7.
New Features:
- Add the Perl API.
- Add Windows binaries and installer.
- A number of enhancements to the dbxml command line shell utility,
including renaming it from "dbxml_shell" to "dbxml"
- Add an "Introducing Berkeley DB XML" document to help newcomers
quickly get started using the product.
API Changes:
- Add XmlContainer::{add,remove}Alias() to allow applications to
create aliases for containers for use in XQuery expressions. [#11715]
- Add XmlContainer::getAllDocuments() method to return all documents
in a container.
- Add XmlContainer::getNumDocuments() method to return the number of
documents in a container.
- Implement a functioning XmlManager::upgradeContainer() interface to
upgrade containers from 2.0.9 to 2.1.8.
- Change the default Base URI to "dbxml:" (it was "dbxml:/"). [#11715]
- Change resolution of "dbxml:" URIs to treat a leading slash
("dbxml:/path" or "dbxml:C:/") as an absolute path. Previously, all
paths were treated as relative inside an XQuery expression. [#11715]
General Functionality Changes:
- Fix a performance problem with Pathan StringPool objects when
returning large data sets. [#12532]
- Fix a bug where an entity in an attribute value was not being
expanded during document serialization if a child node had been added
to that element via direct DOM manipulation or XmlModify. [#12489]
- Fix a bug where a DOM assertion failure would occur when asking for
a specific item from a DOM nodelist. [#12481]
- Change all C++ objects so that they now have default constructors
to make it easier to use them as class members. If these uninitialized
default objects are used an exception will be thrown.
- Fix a bug where removal of metadata in a document retrieved using
the DBXML_LAZY_DOCS flag would fail. [#12369]
- Fix a bug where a virtual collection created by
XmlResolver::resolveCollection would block or potentially crash after
return. [#12154]
- Fix a bug that caused containers to be non-portable across machine
architectures (big vs little endian). Part of this fix causes index
databases to be created on demand, resulting in significantly smaller
initial container size. [#12196]
- Fix a bug where default settings could result in creating a
container that stored whole documents, rather than the intended default
of node storage. [#12193]
- Fix a bug where entities were not being escaped in attribute values
returned in serialized query results from whole document storage.
[#12193]
- Fix bugs in the DOMDocument::getEncoding() and
DOMDocument::getActualEncoding() methods. [#11956]
- Fix bug where it was possible to remove the implicit document name
index and remove the name metadata item from XmlDocument objects.
[#11948]
- Fix a bug where substring indices on 3-character values would not
not properly lower-case the values for storage. This resulted in failed
queries where they should have succeeded. [#11945]
- Fix a memory leak in NsEventGenerator where removal of certain node
storage documents leaked an 8k buffer. [#11857]
- Fix a bug where XmlContainer::updateDocument could not be called on
a node storage document obtained from a query using
XmlQueryContext::EvaluationType of Lazy. This is now legal. [#11838]
- Fix a bug in the query planner that could result in NULL query plan
objects and cause the BDB XML application to crash. [#11831]
- Fix a bug where serialization of constructed DOM in queries was not
properly tracking and expanding entities. [#11817]
- Change whole document storage to only validate documents on initial
input, and not for querying or removal. This only affects containers for
whole document storage that have validation enabled. [#11809]
- Change Pathan to not use Windows HeapAlloc, etc. for its
MemoryManager implementation. It can cause memory shortages in certain
queries. [#11806]
- Fix a bug where empty elements in node storage documents could
result in using the wrong namespace prefixes for subsequent elements.
[#11762]
- Fix a bug where XmlResults::previous would crash on an empty result
set. Fixed several related XmlResults iterator issues. [#11756]
- Fix a bug where BDB XML didn't allow a query to operate directly
against XmlInputStream in an XmlDocument. [#11755]
- Fix a bug where BDB XML could crash on queries that asked for text
of attribute notes (for example, /foo/@attr/text()). [#11717]
- Fix a bug where the isSpecified() state was not being tracked
properly for attributes. This would appear when using the DOM or when
serializing elements with unspecified attributes. [#11686]
- Fix a bug in the database version checking so that it runs before
any other operations and correctly reports database version mismatch
errors on BDB XML 1.x version containers. [#11619]
Utility Changes:
- Change the name of the dbxml_shell utility to be simply dbxml.
[#12226]
- Change dbxml shell command names to be more obvious. Enhance dbxml
shell help and usage messages. Compatibility with 2.0.9 command names
is maintained where possible. [#11610]
- Change the argument flags to the utility commands so that they are
consistent. Some utility command flags will have been modified from
2.0.9.
Java-specific Functionality Changes:
- Fix XmlContainer.putDocument() methods to return String names of new
documents. [#12006]
- Java interfaces are defined to only throw XmlException. Implement
XmlException.getDatabaseException() as documented. [#12377]
Python-specific Functionality Changes:
- Fix a bug where the default container type was not NodeContainer.
[#11625]
- Fix a bug where underlying XmlContainer objects created by
XmlManager.createContainer() were not getting deleted correctly.
[#11627]
Perl-specific Functionality Changes:
- Fix a problem where a crash could occur if an object created by an
XmlManager outlived the XmlManager itself (no SR #).
Tcl-specific Functionality Changes:
- Fix a bug where the default container type was not NodeContainer.
[#11625]
- Fix a bug where underlying XmlContainer objects created by
XmlManager.createContainer() were not getting deleted correctly.
[#11627]
Configuration, Documentation, Portability and Build Changes:
- Fix a bug that caused gcc 4.0 builds to fail, where NsXercesDom
functions used an incorrect virtual function table because of object
confusion. [#12527]
- Fix a bug in the simpleAdd.cpp example where it was not setting
DBXML_GEN_NAME on putDocument calls. [#11796]
- Add configuration and build support for native compilers on HP-UX
(aCC) and AIX (xlC_r). [#11777]
- Add build support for the Cygwin platform on Windows.
- Add configuration support for the Fedora Core 3 platform. [#11650]
- Add configuration support so that on Unix platforms the configure
script will use its parameters to create setup.py for the Python build.
[#11541]
- Add the Perl API.
- The destination for Windows build artifacts, including libraries,
executables, JAR files, and header files has been changed. They are now
placed in the directories, "bin," "lib," "include," and "jar" off of the
top-level installation directory.
- Add Windows binaries and installer.
- Add a number of enhancements to the dbxml command line shell
utility.
- Add an "Introducing Berkeley DB XML" document to help newcomers
quickly get started using the product.