mirror of https://github.com/python/cpython
- Issue #6949: Allow the _bsddb extension to be built with db-4.8.x.
This commit is contained in:
parent
f56813997f
commit
54cc539a2b
|
@ -1000,6 +1000,7 @@ class CrashAndBurn(unittest.TestCase) :
|
|||
# # See http://bugs.python.org/issue3307
|
||||
# self.assertRaises(db.DBInvalidArgError, db.DB, None, 65535)
|
||||
|
||||
if db.version() < (4, 8) :
|
||||
def test02_DBEnv_dealloc(self):
|
||||
# http://bugs.python.org/issue3885
|
||||
import gc
|
||||
|
|
|
@ -35,7 +35,7 @@ class DBTxn_distributed(unittest.TestCase):
|
|||
db.DB_INIT_TXN | db.DB_INIT_LOG | db.DB_INIT_MPOOL |
|
||||
db.DB_INIT_LOCK, 0666)
|
||||
self.db = db.DB(self.dbenv)
|
||||
self.db.set_re_len(db.DB_XIDDATASIZE)
|
||||
self.db.set_re_len(db.DB_GID_SIZE)
|
||||
if must_open_db :
|
||||
if db.version() > (4,1) :
|
||||
txn=self.dbenv.txn_begin()
|
||||
|
@ -76,7 +76,7 @@ class DBTxn_distributed(unittest.TestCase):
|
|||
# let them be garbage collected.
|
||||
for i in xrange(self.num_txns) :
|
||||
txn = self.dbenv.txn_begin()
|
||||
gid = "%%%dd" %db.DB_XIDDATASIZE
|
||||
gid = "%%%dd" %db.DB_GID_SIZE
|
||||
gid = adapt(gid %i)
|
||||
self.db.put(i, gid, txn=txn, flags=db.DB_APPEND)
|
||||
txns.add(gid)
|
||||
|
|
|
@ -45,6 +45,8 @@ Library
|
|||
Extension Modules
|
||||
-----------------
|
||||
|
||||
- Issue #6949: Allow the _bsddb extension to be built with db-4.8.x.
|
||||
|
||||
- Issue #8142: Update libffi to the 3.0.9 release.
|
||||
|
||||
- Issue #1530559: When passing a non-integer argument to struct.pack with *any*
|
||||
|
|
|
@ -215,6 +215,10 @@ static PyObject* DBRepUnavailError; /* DB_REP_UNAVAIL */
|
|||
#define DB_BUFFER_SMALL ENOMEM
|
||||
#endif
|
||||
|
||||
#if (DBVER < 48)
|
||||
#define DB_GID_SIZE DB_XIDDATASIZE
|
||||
#endif
|
||||
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
/* Structure definitions */
|
||||
|
@ -4501,7 +4505,11 @@ DBEnv_txn_recover(DBEnvObject* self)
|
|||
DBTxnObject *txn;
|
||||
#define PREPLIST_LEN 16
|
||||
DB_PREPLIST preplist[PREPLIST_LEN];
|
||||
#if (DBVER < 48)
|
||||
long retp;
|
||||
#else
|
||||
u_int32_t retp;
|
||||
#endif
|
||||
|
||||
CHECK_ENV_NOT_CLOSED(self);
|
||||
|
||||
|
@ -4522,7 +4530,7 @@ DBEnv_txn_recover(DBEnvObject* self)
|
|||
flags=DB_NEXT; /* Prepare for next loop pass */
|
||||
for (i=0; i<retp; i++) {
|
||||
gid=PyBytes_FromStringAndSize((char *)(preplist[i].gid),
|
||||
DB_XIDDATASIZE);
|
||||
DB_GID_SIZE);
|
||||
if (!gid) {
|
||||
Py_DECREF(list);
|
||||
return NULL;
|
||||
|
@ -5047,6 +5055,7 @@ DBEnv_set_private(DBEnvObject* self, PyObject* private_obj)
|
|||
}
|
||||
|
||||
|
||||
#if (DBVER < 48)
|
||||
static PyObject*
|
||||
DBEnv_set_rpc_server(DBEnvObject* self, PyObject* args, PyObject* kwargs)
|
||||
{
|
||||
|
@ -5068,6 +5077,7 @@ DBEnv_set_rpc_server(DBEnvObject* self, PyObject* args, PyObject* kwargs)
|
|||
RETURN_IF_ERR();
|
||||
RETURN_NONE();
|
||||
}
|
||||
#endif
|
||||
|
||||
static PyObject*
|
||||
DBEnv_set_verbose(DBEnvObject* self, PyObject* args)
|
||||
|
@ -5949,9 +5959,9 @@ DBTxn_prepare(DBTxnObject* self, PyObject* args)
|
|||
if (!PyArg_ParseTuple(args, "s#:prepare", &gid, &gid_size))
|
||||
return NULL;
|
||||
|
||||
if (gid_size != DB_XIDDATASIZE) {
|
||||
if (gid_size != DB_GID_SIZE) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"gid must be DB_XIDDATASIZE bytes long");
|
||||
"gid must be DB_GID_SIZE bytes long");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -6541,8 +6551,10 @@ static PyMethodDef DBEnv_methods[] = {
|
|||
#endif
|
||||
{"set_get_returns_none",(PyCFunction)DBEnv_set_get_returns_none, METH_VARARGS},
|
||||
{"txn_recover", (PyCFunction)DBEnv_txn_recover, METH_NOARGS},
|
||||
#if (DBVER < 48)
|
||||
{"set_rpc_server", (PyCFunction)DBEnv_set_rpc_server,
|
||||
METH_VARARGS||METH_KEYWORDS},
|
||||
#endif
|
||||
{"set_verbose", (PyCFunction)DBEnv_set_verbose, METH_VARARGS},
|
||||
#if (DBVER >= 42)
|
||||
{"get_verbose", (PyCFunction)DBEnv_get_verbose, METH_VARARGS},
|
||||
|
@ -7091,6 +7103,7 @@ PyMODINIT_FUNC PyInit__bsddb(void) /* Note the two underscores */
|
|||
ADD_INT(d, DB_MAX_PAGES);
|
||||
ADD_INT(d, DB_MAX_RECORDS);
|
||||
|
||||
#if (DBVER < 48)
|
||||
#if (DBVER >= 42)
|
||||
ADD_INT(d, DB_RPCCLIENT);
|
||||
#else
|
||||
|
@ -7098,7 +7111,11 @@ PyMODINIT_FUNC PyInit__bsddb(void) /* Note the two underscores */
|
|||
/* allow apps to be written using DB_RPCCLIENT on older Berkeley DB */
|
||||
_addIntToDict(d, "DB_RPCCLIENT", DB_CLIENT);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (DBVER < 48)
|
||||
ADD_INT(d, DB_XA_CREATE);
|
||||
#endif
|
||||
|
||||
ADD_INT(d, DB_CREATE);
|
||||
ADD_INT(d, DB_NOMMAP);
|
||||
|
@ -7115,7 +7132,13 @@ PyMODINIT_FUNC PyInit__bsddb(void) /* Note the two underscores */
|
|||
ADD_INT(d, DB_INIT_TXN);
|
||||
ADD_INT(d, DB_JOINENV);
|
||||
|
||||
#if (DBVER >= 48)
|
||||
ADD_INT(d, DB_GID_SIZE);
|
||||
#else
|
||||
ADD_INT(d, DB_XIDDATASIZE);
|
||||
/* Allow new code to work in old BDB releases */
|
||||
_addIntToDict(d, "DB_GID_SIZE", DB_XIDDATASIZE);
|
||||
#endif
|
||||
|
||||
ADD_INT(d, DB_RECOVER);
|
||||
ADD_INT(d, DB_RECOVER_FATAL);
|
||||
|
|
Loading…
Reference in New Issue