4.7.3: (Python 2.6 release. First release with Python 3.0 support)
* "private" is a keyword in C++. (Duncan Grisby)
* setup.py should install "bsddb.h". (Duncan Grisby)
* "DB_remove" memory corruption & crash. (Duncan Grisby)
* Under Python 3.0, you can't use string keys/values, but
bytes ones. Print the right error message.
* "DB.has_key()" allowed transactions as a positional parameter.
We allow, now, transactions as a keyword parameter also, as
documented.
* Correct "DB.associate()" parameter order in the documentation.
* "DB.append()" recognizes "txn" both as a positional and a
keyword parameter.
* Small fix in "dbshelve" for compatibility with Python 3.0.
* A lot of changes in "dbtables" for compatibility with Python 3.0.
* Huge work making the testsuite compatible with Python 3.0.
* In some cases the C module returned Unicode strings under
Python 3.0. It should return "bytes", ALWAYS. Solved.
* Remove a dict.has_key() use to silence a warning raised under
Python2.6 -3 parameter. Python SVN r65391, Brett Cannon.
* Solve some memory leaks - Neal Norwitz
* If DBEnv creation fails, library can crash. (Victor Stinner)
* Raising exceptions while doing a garbage collection
will kill the interpreter. (Victor Stinner)
* Crash in "DB.verify()". Noted by solsTiCe d'Hiver.
changes: many fixes, improvements and API extensions, see
http://www.jcea.es/programacion/pybsddb.htm
pkgsrc note: 'egg' (setuptools) support was added upstream, but
disabled in pkgsrc because it leads to nondeterministic results
depending on OS version and installed pkgs
4.5.0:
* Adds supports for compiling and linking with BerkeleyDB 4.5
* Python Bug #1599782: Fix segfault on bsddb.db.DB().type() due to
releasing the GIL when it shouldn't. (nnorowitz)
* Fixes a bug with bsddb.DB.stat where the flags and txn keyword
arguments are transposed.
* change test cases to use tempfile.gettempdir()
4.4.5:
* pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
methods now allow their database parameter to be None as the
sleepycat API allows.
4.4.4:
* fix DBCursor.pget() bug with keyword argument names when no data= is
supplied [SF pybsddb bug #1477863]
* add support for DBSequence objects [patch #1466734]
* support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
* support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
* add DB_ARCH_REMOVE flag and fix DBEnv.log_archive() to accept it without
potentially following an uninitialized pointer.
4.4.3:
* fix DBEnv.set_tx_timestamp to not crash on Win64 platforms (thomas.wouters)
* tons of memory leak fixes all over the code (thomas.wouters)
* fixes ability to unpickle DBError (and children) exceptions
changes:
-Changes the interface to the recently added set_bt_compare callback to
only take two arguments like a normal comparison function.
-Fixes a crash in DB.associate when it wanted to raise an exception.
cvs: ----------------------------------------------------------------------
Changes:
* changed DB and DBEnv set_get_returns_none() default from 1 to 2.
* cleaned up compatibility iterator interface.
* the legacy compatibility dict-like interface now support iterators
and generators and allows multithreaded access to the database.
* fixed a tuple memory leak when raising "object has been closed"
exceptions for DB, DBEnv and DBCursor objects. I doubt much
previous code triggered this.
* use of a closed DBCursor now raises a DBCursorClosedError exception
subclass of DBError rather than a boring old DBError.
* added DBCursor.get_current_size() method to return the length in bytes
of the value pointed to by the cursor without reading the actual data.
* Standalone pybsddb builds now use a _pybsddb dynamic/shared library
rather than _bsddb. This allows for pybsddb to be built, installed
and used on python >= 2.3 which includes an older version of pybsddb
as its bsddb library.
* Can now compile and link with BerkeleyDB 4.2.x (when its released).
* the legacy bsddb module supports the iterator interface on python 2.3.
* Support the DBEnv.set_shm_key() method.
* Fixed setup.py include/{db4,db3} header file searching (SF bug #789740).
Changes sinec 4.1.1:
* Extended DB & DBEnv set_get_returns_none functionality to take a
"level" instead of a boolean flag. The boolean 0 and 1 values still
have the same effect. A value of 2 extends the "return None instead
of raising an exception" behaviour to the DBCursor set methods.
This will become the default behaviour in pybsddb 4.2.
* Updated documentation for set_get_returns_none. Regenerated the
stale html docs from the text documentation.
* Fixed a typo in DBCursor.join_item method that made it crash instead
of returning a value. Obviously nobody uses it. Wrote a test case
for join and join_item.
* Added the dbobj wrapper for DBEnv set_timeout method.
* Updated README.txt
* Added the DBEnv.set_timeout method.
* code cleanup to use python 2.x features in .py files
* the standalone pybsddb distribution will install a module
called bsddb3 while the module included with python >= 2.3
will be known as bsddb.
* Shared all .py and .c source with the Python project.
* Fixed DBTxn objects to raise an exception if they are used after
the underlying DB_TXN handle becomes invalid. (rather than
potentially causing a segfault)
* Fixed module to work when compiled against a python without thread
support.
* Do not attempt to double-close DB cursor's whos underlying DB
has already been closed (fixes a segfault).
* Close DB objects when DB.open fails to prevent an exception about
databases still being open when calling DBEnv.close.
Inspired by FreeBSD "ports".
Fix the PLISTs accordingly.
Also, while at it, remove now obsolete compileall.py calls in post-install
targets and insure that extension.mk is in included before builinlinks of
other Python modules.
Discussed with/ok'ed by drochner@.
This NetBSD package includes the patches from bug reports #667340,
#667343, and #669533, which are in the SourceForge pybsddb3 CVS but
not yet in the 4.1.1 release; hence PKGREVISION=1.