diff options
author | Gregory P. Smith <greg@mad-scientist.com> | 2006-01-24 09:46:48 (GMT) |
---|---|---|
committer | Gregory P. Smith <greg@mad-scientist.com> | 2006-01-24 09:46:48 (GMT) |
commit | 29602d2153e56081fad5db19e356e51c37ec2ec8 (patch) | |
tree | f6d5ccee866f58a4b00e4378192c9f1652127fbc | |
parent | bab05c96049ddcfabfdf314d60835cc4e245d400 (diff) | |
download | cpython-29602d2153e56081fad5db19e356e51c37ec2ec8.zip cpython-29602d2153e56081fad5db19e356e51c37ec2ec8.tar.gz cpython-29602d2153e56081fad5db19e356e51c37ec2ec8.tar.bz2 |
Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
way back thru 3.2). This should be backported to the release24-maint
branch.
-rw-r--r-- | Modules/_bsddb.c | 18 | ||||
-rw-r--r-- | setup.py | 8 |
2 files changed, 21 insertions, 5 deletions
diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c index aa4a161..1047745 100644 --- a/Modules/_bsddb.c +++ b/Modules/_bsddb.c @@ -97,7 +97,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif -#define PY_BSDDB_VERSION "4.3.3" +#define PY_BSDDB_VERSION "4.4.0" static char *rcs_id = "$Id$"; @@ -4308,8 +4308,13 @@ DBEnv_lock_stat(DBEnvObject* self, PyObject* args) #endif MAKE_ENTRY(nrequests); MAKE_ENTRY(nreleases); - MAKE_ENTRY(nnowaits); +#if (DBVER < 44) + MAKE_ENTRY(nnowaits); /* these were renamed in 4.4 */ MAKE_ENTRY(nconflicts); +#else + MAKE_ENTRY(lock_nowait); + MAKE_ENTRY(lock_wait); +#endif MAKE_ENTRY(ndeadlocks); MAKE_ENTRY(regsize); MAKE_ENTRY(region_wait); @@ -5153,7 +5158,11 @@ DL_EXPORT(void) init_bsddb(void) ADD_INT(d, DB_LOCK_IREAD); ADD_INT(d, DB_LOCK_IWR); #if (DBVER >= 33) +#if (DBVER < 44) ADD_INT(d, DB_LOCK_DIRTY); +#else + ADD_INT(d, DB_LOCK_READ_UNCOMMITTED); /* renamed in 4.4 */ +#endif ADD_INT(d, DB_LOCK_WWRITE); #endif @@ -5255,6 +5264,11 @@ DL_EXPORT(void) init_bsddb(void) ADD_INT(d, DB_MULTIPLE_KEY); #endif +#if (DBVER >= 44) + ADD_INT(d, DB_READ_UNCOMMITTED); /* replaces DB_DIRTY_READ in 4.4 */ + ADD_INT(d, DB_READ_COMMITTED); +#endif + #if (DBVER >= 33) ADD_INT(d, DB_DONOTINDEX); #endif @@ -556,12 +556,12 @@ class PyBuildExt(build_ext): # Sleepycat Berkeley DB interface. http://www.sleepycat.com # # This requires the Sleepycat DB code. The earliest supported version - # of that library is 3.2, the latest supported version is 4.3. A list + # of that library is 3.2, the latest supported version is 4.4. A list # of available releases can be found at # # http://www.sleepycat.com/update/index.html - max_db_ver = (4, 3) + max_db_ver = (4, 4) min_db_ver = (3, 2) db_setup_debug = False # verbose debug prints from this script? @@ -578,18 +578,20 @@ class PyBuildExt(build_ext): '/sw/include/db3', ] # 4.x minor number specific paths - for x in (0,1,2,3): + for x in (0,1,2,3,4): db_inc_paths.append('/usr/include/db4%d' % x) db_inc_paths.append('/usr/include/db4.%d' % x) db_inc_paths.append('/usr/local/BerkeleyDB.4.%d/include' % x) db_inc_paths.append('/usr/local/include/db4%d' % x) db_inc_paths.append('/pkg/db-4.%d/include' % x) + db_inc_paths.append('/opt/db-4.%d/include' % x) # 3.x minor number specific paths for x in (2,3): db_inc_paths.append('/usr/include/db3%d' % x) db_inc_paths.append('/usr/local/BerkeleyDB.3.%d/include' % x) db_inc_paths.append('/usr/local/include/db3%d' % x) db_inc_paths.append('/pkg/db-3.%d/include' % x) + db_inc_paths.append('/opt/db-3.%d/include' % x) db_ver_inc_map = {} |