[Python-checkins] r78974 - in python/trunk: Lib/bsddb/test/test_basics.py Lib/bsddb/test/test_distributed_transactions.py Misc/NEWS Modules/_bsddb.c setup.py

matthias.klose python-checkins at python.org
Mon Mar 15 13:46:18 CET 2010


Author: matthias.klose
Date: Mon Mar 15 13:46:18 2010
New Revision: 78974
Log:
- Issue #6949: Allow the _bsddb extension to be built with db-4.8.x.
Modified:
 python/trunk/Lib/bsddb/test/test_basics.py
 python/trunk/Lib/bsddb/test/test_distributed_transactions.py
 python/trunk/Misc/NEWS
 python/trunk/Modules/_bsddb.c
 python/trunk/setup.py
Modified: python/trunk/Lib/bsddb/test/test_basics.py
==============================================================================
--- python/trunk/Lib/bsddb/test/test_basics.py	(original)
+++ python/trunk/Lib/bsddb/test/test_basics.py	Mon Mar 15 13:46:18 2010
@@ -1000,11 +1000,12 @@
 # # See http://bugs.python.org/issue3307
 # self.assertRaises(db.DBInvalidArgError, db.DB, None, 65535)
 
- def test02_DBEnv_dealloc(self):
- # http://bugs.python.org/issue3885
- import gc
- self.assertRaises(db.DBInvalidArgError, db.DBEnv, ~db.DB_RPCCLIENT)
- gc.collect()
+ if db.version() < (4, 8) :
+ def test02_DBEnv_dealloc(self):
+ # http://bugs.python.org/issue3885
+ import gc
+ self.assertRaises(db.DBInvalidArgError, db.DBEnv, ~db.DB_RPCCLIENT)
+ gc.collect()
 
 
 #----------------------------------------------------------------------
Modified: python/trunk/Lib/bsddb/test/test_distributed_transactions.py
==============================================================================
--- python/trunk/Lib/bsddb/test/test_distributed_transactions.py	(original)
+++ python/trunk/Lib/bsddb/test/test_distributed_transactions.py	Mon Mar 15 13:46:18 2010
@@ -35,7 +35,7 @@
 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 @@
 # 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)
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Mon Mar 15 13:46:18 2010
@@ -45,6 +45,8 @@
 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*
Modified: python/trunk/Modules/_bsddb.c
==============================================================================
--- python/trunk/Modules/_bsddb.c	(original)
+++ python/trunk/Modules/_bsddb.c	Mon Mar 15 13:46:18 2010
@@ -215,6 +215,10 @@
 #define	DB_BUFFER_SMALL		ENOMEM
 #endif
 
+#if (DBVER < 48)
+#define DB_GID_SIZE DB_XIDDATASIZE
+#endif
+
 
 /* --------------------------------------------------------------------- */
 /* Structure definitions */
@@ -4501,7 +4505,11 @@
 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 @@
 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 @@
 }
 
 
+#if (DBVER < 48)
 static PyObject*
 DBEnv_set_rpc_server(DBEnvObject* self, PyObject* args, PyObject* kwargs)
 {
@@ -5068,6 +5077,7 @@
 RETURN_IF_ERR();
 RETURN_NONE();
 }
+#endif
 
 static PyObject*
 DBEnv_set_verbose(DBEnvObject* self, PyObject* args)
@@ -5949,9 +5959,9 @@
 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 @@
 #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 @@
 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 @@
 /* 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 @@
 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);
Modified: python/trunk/setup.py
==============================================================================
--- python/trunk/setup.py	(original)
+++ python/trunk/setup.py	Mon Mar 15 13:46:18 2010
@@ -707,7 +707,7 @@
 # a release. Most open source OSes come with one or more
 # versions of BerkeleyDB already installed.
 
- max_db_ver = (4, 7)
+ max_db_ver = (4, 8)
 min_db_ver = (3, 3)
 db_setup_debug = False # verbose debug prints from this script?
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /