bsddb module updated to version 4.7.0

This commit is contained in:
Jesus Cea 2008-05-22 15:27:38 +00:00
parent 9a8af2df23
commit ca3939cd52
6 changed files with 91 additions and 11 deletions

View File

@ -48,4 +48,4 @@ else:
from _bsddb import __version__
if version() < (3, 2, 0):
raise ImportError, "correct BerkeleyDB symbols not found. Perhaps python was statically linked with an older version?"
raise ImportError, "correct Berkeley DB symbols not found. Perhaps python was statically linked with an older version?"

View File

@ -13,7 +13,7 @@
# -- Gregory P. Smith <greg@krypto.org>
# This provides a simple database table interface built on top of
# the Python BerkeleyDB 3 interface.
# the Python Berkeley DB 3 interface.
#
_cvsid = '$Id$'
@ -139,7 +139,7 @@ class bsdTableDB :
recover=0, dbflags=0):
"""bsdTableDB(filename, dbhome, create=0, truncate=0, mode=0600)
Open database name in the dbhome BerkeleyDB directory.
Open database name in the dbhome Berkeley DB directory.
Use keyword arguments when calling this constructor.
"""
self.db = None

View File

@ -110,7 +110,7 @@ class DBSequenceTest(unittest.TestCase):
self.assertRaises(db.DBNotFoundError, seq.open,
key='id', txn=None, flags=0)
self.assertRaises(db.DBNotFoundError, seq.stat)
self.assertRaises(db.DBInvalidArgError, seq.stat)
d.close()

View File

@ -44,7 +44,8 @@ Extension Modules
- Support for Windows 9x has been removed from the winsound module.
- bsddb module updated to version 4.6.4.
- bsddb module updated to version 4.7.0.
http://www.jcea.es/programacion/pybsddb.htm#bsddb3-4.7.0
- Issue #2858: Fix potential memory corruption when
bsddb.db.DBEnv.lock_get and other bsddb.db object constructors

View File

@ -50,7 +50,7 @@
*
* Gregory P. Smith <greg@krypto.org> was once again the maintainer.
*
* Since January 2008, new maintainer is Jesus Cea <jcea@argo.es>.
* Since January 2008, new maintainer is Jesus Cea <jcea@jcea.es>.
* Jesus Cea licenses this code to PSF under a Contributor Agreement.
*
* Use the pybsddb-users@lists.sf.net mailing list for all questions.
@ -4129,6 +4129,26 @@ DBEnv_set_flags(DBEnvObject* self, PyObject* args)
}
#if (DBVER >= 47)
static PyObject*
DBEnv_log_set_config(DBEnvObject* self, PyObject* args)
{
int err, flags, onoff;
if (!PyArg_ParseTuple(args, "ii:log_set_config",
&flags, &onoff))
return NULL;
CHECK_ENV_NOT_CLOSED(self);
MYDB_BEGIN_ALLOW_THREADS;
err = self->db_env->log_set_config(self->db_env, flags, onoff);
MYDB_END_ALLOW_THREADS;
RETURN_IF_ERR();
RETURN_NONE();
}
#endif /* DBVER >= 47 */
static PyObject*
DBEnv_set_data_dir(DBEnvObject* self, PyObject* args)
{
@ -4779,8 +4799,13 @@ DBEnv_lock_stat(DBEnvObject* self, PyObject* args)
MAKE_ENTRY(objs_nowait);
MAKE_ENTRY(lockers_wait);
MAKE_ENTRY(lockers_nowait);
#if (DBVER >= 47)
MAKE_ENTRY(lock_wait);
MAKE_ENTRY(lock_nowait);
#else
MAKE_ENTRY(locks_wait);
MAKE_ENTRY(locks_nowait);
#endif
MAKE_ENTRY(hash_len);
#endif
MAKE_ENTRY(regsize);
@ -4943,6 +4968,30 @@ DBEnv_set_get_returns_none(DBEnvObject* self, PyObject* args)
return PyInt_FromLong(oldValue);
}
#if (DBVER >= 40)
static PyObject*
DBEnv_set_rpc_server(DBEnvObject* self, PyObject* args, PyObject* kwargs)
{
int err;
char *host;
long cl_timeout=0, sv_timeout=0;
static char* kwnames[] = { "host", "cl_timeout", "sv_timeout", NULL};
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|ll:set_rpc_server", kwnames,
&host, &cl_timeout, &sv_timeout))
return NULL;
CHECK_ENV_NOT_CLOSED(self);
MYDB_BEGIN_ALLOW_THREADS;
err = self->db_env->set_rpc_server(self->db_env, NULL, host, cl_timeout,
sv_timeout, 0);
MYDB_END_ALLOW_THREADS;
RETURN_IF_ERR();
RETURN_NONE();
}
#endif
#if (DBVER >= 40)
static PyObject*
DBEnv_set_verbose(DBEnvObject* self, PyObject* args)
@ -5075,7 +5124,11 @@ static PyObject*
DBEnv_rep_get_nsites(DBEnvObject* self, PyObject* args)
{
int err;
#if (DBVER >= 47)
u_int32_t nsites;
#else
int nsites;
#endif
if (!PyArg_ParseTuple(args, ":rep_get_nsites")) {
return NULL;
@ -5109,7 +5162,11 @@ static PyObject*
DBEnv_rep_get_priority(DBEnvObject* self, PyObject* args)
{
int err;
#if (DBVER >= 47)
u_int32_t priority;
#else
int priority;
#endif
if (!PyArg_ParseTuple(args, ":rep_get_priority")) {
return NULL;
@ -6094,6 +6151,9 @@ static PyMethodDef DBEnv_methods[] = {
{"set_cachesize", (PyCFunction)DBEnv_set_cachesize, METH_VARARGS},
{"set_data_dir", (PyCFunction)DBEnv_set_data_dir, METH_VARARGS},
{"set_flags", (PyCFunction)DBEnv_set_flags, METH_VARARGS},
#if (DBVER >= 47)
{"log_set_config", (PyCFunction)DBEnv_log_set_config, METH_VARARGS},
#endif
{"set_lg_bsize", (PyCFunction)DBEnv_set_lg_bsize, METH_VARARGS},
{"set_lg_dir", (PyCFunction)DBEnv_set_lg_dir, METH_VARARGS},
{"set_lg_max", (PyCFunction)DBEnv_set_lg_max, METH_VARARGS},
@ -6139,6 +6199,10 @@ static PyMethodDef DBEnv_methods[] = {
#if (DBVER >= 40)
{"txn_recover", (PyCFunction)DBEnv_txn_recover, METH_VARARGS},
#endif
#if (DBVER >= 40)
{"set_rpc_server", (PyCFunction)DBEnv_set_rpc_server,
METH_VARARGS||METH_KEYWORDS},
#endif
#if (DBVER >= 40)
{"set_verbose", (PyCFunction)DBEnv_set_verbose, METH_VARARGS},
#if (DBVER >= 42)
@ -6760,6 +6824,7 @@ DL_EXPORT(void) init_bsddb(void)
#if (DBVER < 45)
ADD_INT(d, DB_CACHED_COUNTS);
#endif
#if (DBVER >= 41)
_addIntToDict(d, "DB_CHECKPOINT", 0);
#else
@ -6858,14 +6923,25 @@ DL_EXPORT(void) init_bsddb(void)
ADD_INT(d, DB_TIME_NOTGRANTED);
ADD_INT(d, DB_TXN_NOT_DURABLE);
ADD_INT(d, DB_TXN_WRITE_NOSYNC);
ADD_INT(d, DB_LOG_AUTOREMOVE);
ADD_INT(d, DB_DIRECT_LOG);
ADD_INT(d, DB_DIRECT_DB);
ADD_INT(d, DB_INIT_REP);
ADD_INT(d, DB_ENCRYPT);
ADD_INT(d, DB_CHKSUM);
#endif
#if (DBVER >= 42) && (DBVER < 47)
ADD_INT(d, DB_LOG_AUTOREMOVE);
ADD_INT(d, DB_DIRECT_LOG);
#endif
#if (DBVER >= 47)
ADD_INT(d, DB_LOG_DIRECT);
ADD_INT(d, DB_LOG_DSYNC);
ADD_INT(d, DB_LOG_IN_MEMORY);
ADD_INT(d, DB_LOG_AUTO_REMOVE);
ADD_INT(d, DB_LOG_ZERO);
#endif
#if (DBVER >= 44)
ADD_INT(d, DB_DSYNC_DB);
#endif
@ -6935,14 +7011,17 @@ DL_EXPORT(void) init_bsddb(void)
#endif
#if (DBVER >= 43)
ADD_INT(d, DB_DSYNC_LOG);
ADD_INT(d, DB_LOG_INMEMORY);
ADD_INT(d, DB_BUFFER_SMALL);
ADD_INT(d, DB_SEQ_DEC);
ADD_INT(d, DB_SEQ_INC);
ADD_INT(d, DB_SEQ_WRAP);
#endif
#if (DBVER >= 43) && (DBVER < 47)
ADD_INT(d, DB_LOG_INMEMORY);
ADD_INT(d, DB_DSYNC_LOG);
#endif
#if (DBVER >= 41)
ADD_INT(d, DB_ENCRYPT_AES);
ADD_INT(d, DB_AUTO_COMMIT);

View File

@ -105,7 +105,7 @@
#error "eek! DBVER can't handle minor versions > 9"
#endif
#define PY_BSDDB_VERSION "4.6.5devel2"
#define PY_BSDDB_VERSION "4.7.0"
/* Python object definitions */