4.2.4:

 * changed DB and DBEnv set_get_returns_none() default from 1 to 2.
 * cleaned up compatibility iterator interface.

4.2.3:

 * 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.

4.2.2:

 * 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.

4.2.1:

 * 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.

4.2.0:

 * 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.

4.1.x:

 * Support the DBEnv.set_shm_key() method.
 * Fixed setup.py include/{db4,db3} header file searching (SF bug #789740).

4.1.6:

 * 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 

4.1.5:

 * Added the DBEnv.set_timeout method.

4.1.4:
 
 * rebuilt the windows 4.1.3 package, the original package was corrupt due
   to bad ram on my build host.

4.1.3 - 2003-02-02:

 * 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.

4.1.2 - 2003-01-17:

 * 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.
	
4.1.1 - 2002-12-20:

 * Fixed a memory leak when raising exceptions from the database
   library.  Debugged and fixed by Josh Hoyt <josh@janrain.com>.  Thanks!
   (sourceforge patch 656517)

4.1.0 - 2002-12-13:

 * Updated our version number to track the latest BerkeleyDB interface
   version that we support.
 * Simplified the build and test process.  Now you should just be able
   to say "python setup.py build" and "python setup.py install".  Also
   added a nice test.py harness.  Do "python test.py -h" for details.
 * The windows binary is build against BerkeleyDB 4.1.24 with current
   eight patches issued by Sleepycat applied.
 * REMINDER: BerkeleyDB 4.1 requires code changes if you use database
   transactions.  See the upgrade docs on http://www.sleepycat.com/.

3.4.3 - 2002-10-18:

 * added support for BerkeleyDB 4.1:  DB.open and DB.associate
   will now accept a txn keyword argument when using BerkeleyDB 4.1.
   DBEnv.dbremove, DBEnv.dbrename, DBEnv.set_encrypt and DB.set_encrypt
   methods have been exposed for 4.1.

3.4.2 - 2002-08-14:

 * dbtables.py: serious bug fix.  The Select, Modify and Delete methods could
   all act upon rows that did not match all of the conditions.  (bug # 590449)
   A test case was added.
 * dbutils.py: updated DeadlockWrap
 * test_threads.py: fixed to use dbutils.DeadlockWrap to catch and avoid
   DBLockDeadlockError exceptions during simple threading tests.

3.4.1:

 * fixed typo cut and paste bugs in test_dbsimple.py and test_threads.py
 * fixed bug with cursors where calling DBCursor.close() would cause
   the object's destructor __del__() method to raise an exception when
   it was called by the gc.
 * fixed a bug in associated callbacks that could cause a null pointer
   dereference when python threading had not yet been initialized.

3.4.0:
 
 * many bugfixes, its been a long while since a new package was created.
 * ChangeLog started.

