Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
54cc539a
Commit
54cc539a
authored
Mar 15, 2010
by
Matthias Klose
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Issue #6949: Allow the _bsddb extension to be built with db-4.8.x.
parent
f5681399
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
37 additions
and
11 deletions
+37
-11
Lib/bsddb/test/test_basics.py
Lib/bsddb/test/test_basics.py
+6
-5
Lib/bsddb/test/test_distributed_transactions.py
Lib/bsddb/test/test_distributed_transactions.py
+2
-2
Misc/NEWS
Misc/NEWS
+2
-0
Modules/_bsddb.c
Modules/_bsddb.c
+26
-3
setup.py
setup.py
+1
-1
No files found.
Lib/bsddb/test/test_basics.py
View file @
54cc539a
...
...
@@ -1000,11 +1000,12 @@ class CrashAndBurn(unittest.TestCase) :
# # 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
()
#----------------------------------------------------------------------
...
...
Lib/bsddb/test/test_distributed_transactions.py
View file @
54cc539a
...
...
@@ -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_
XIDDATA
SIZE
)
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_
XIDDATA
SIZE
gid
=
"%%%dd"
%
db
.
DB_
GID_
SIZE
gid
=
adapt
(
gid
%
i
)
self
.
db
.
put
(
i
,
gid
,
txn
=
txn
,
flags
=
db
.
DB_APPEND
)
txns
.
add
(
gid
)
...
...
Misc/NEWS
View file @
54cc539a
...
...
@@ -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*
...
...
Modules/_bsddb.c
View file @
54cc539a
...
...
@@ -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_
XIDDATA
SIZE
);
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_
XIDDATA
SIZE
)
{
if
(
gid_size
!=
DB_
GID_
SIZE
)
{
PyErr_SetString
(
PyExc_TypeError
,
"gid must be DB_
XIDDATA
SIZE 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
);
...
...
setup.py
View file @
54cc539a
...
...
@@ -707,7 +707,7 @@ class PyBuildExt(build_ext):
# 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?
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment