| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
methods now allow their database parameter to be None as the
sleepycat API allows.
Also adds an appropriate test case for DBEnv.dbrename and dbremove.
|
|
|
|
|
|
|
|
|
| |
it definitely could use some review to ensure I'm not off by one
and there's no possible overflow/wrap-around of bytes_left.
Reported by Klocwork #1.
Fix a problem if there is a failure allocating self->db.
Found with failmalloc.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We know it's not NULL from the ParseTuple and DbObject_Check will verify
it's not NULL.
|
|
|
|
|
|
| |
parameter strings") changed this function's signature
seemingly by mistake, which is causing buildbots to fail
test_bsddb3. Restored the pre-46688 signature.
|
| |
|
|
|
|
|
| |
results. It could previously incorrectly return 0 in some cases.
Fixes SF bug 1493322 (pybsddb bug 1184012).
|
|
|
|
| |
supplied [SF pybsddb bug #1477863]
|
| |
|
| |
|
| |
|
|
|
|
|
| |
fix the additional rare (out of memory only) bug that it was supposed to fix
of not freeing log_list when the python allocator failed.
|
|
|
|
|
|
|
| |
in BerkeleyDB >= 4.2 it tried to construct a list out of an uninitialized
char **log_list.
feature: export the DB_ARCH_REMOVE flag by name in the module on BerkeleyDB >= 4.2.
|
|
|
|
| |
Use Py_UnpackTuple instead of PyArg_ParseTuple where possible.
|
|
|
|
|
| |
Also adds some backwards compatibility when compiling _bsddb.c on earlier
python versions (needed for pybsddb).
|
|
|
|
| |
gcc 4.0.x wasn't complaining about *that* one ;)
|
|
|
|
|
|
|
|
|
|
| |
missing PyObject_Del()'s, simplify some code by using Py_BuildValue()
instead of creating a tuple with items manually, stop clobbering builtin
exceptions in a few places, and guard against NULL-returning functions some
more.
This fixes 117 of the 780 (!?!#%@#$!!) reference leaks in test_bsddb3. I
ain't not done yet, although this review of 5kloc was just the easy part.
|
|
|
|
| |
Normalize coding style.
|
| |
|
|
|
|
| |
Will backport.
|
|
|
|
|
|
|
|
|
| |
non-32bit platforms. Will still only allow 32 bits in a timestamp on Win64,
but at least it won't crash, and it'll work right on platforms where longs
are big enough to contain time_t's.
(A better-working, although conceptually less-right fix would have been to
use Py_ssize_t here, but Martin and Tim won't let me.)
|
| |
|
| |
|
| |
|
|
|
|
| |
is ok for a standalone pybsddb source dist for use with <= 2.3.
|
| |
|
|
|
|
| |
Will backport.
|
|
|
|
|
|
| |
this fixes the bsddb db associate tests when compiled against
BerkeleyDB 3.3 thru 4.1. 4.2 thru 4.4 already passed and still
pass.
|
|
|
|
|
| |
way back thru 3.2). This should be backported to the release24-maint
branch.
|
|
|
|
| |
Probably should be backported.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In C++, it's an error to pass a string literal to a char* function
without a const_cast(). Rather than require every C++ extension
module to put a cast around string literals, fix the API to state the
const-ness.
I focused on parts of the API where people usually pass literals:
PyArg_ParseTuple() and friends, Py_BuildValue(), PyMethodDef, the type
slots, etc. Predictably, there were a large set of functions that
needed to be fixed as a result of these changes. The most pervasive
change was to make the keyword args list passed to
PyArg_ParseTupleAndKewords() to be a const char *kwlist[].
One cast was required as a result of the changes: A type object
mallocs the memory for its tp_doc slot and later frees it.
PyTypeObject says that tp_doc is const char *; but if the type was
created by type_new(), we know it is safe to cast to char *.
|
| |
|
| |
|
|
|
|
|
| |
arguments (left, right) like any sane comparison function. no need to
pass in the db object as an argument.
|
| |
|
|
|
|
|
|
| |
DBError was supposed to be raised.
needs backport to 2.4.x and possibly 2.3.x.
|
|
|
|
|
|
|
|
|
|
|
| |
* the has_key() method was not raising a DBError when a database error
had occurred. [SF patch id 1212590]
* added a wrapper for the DBEnv.set_lg_regionmax method [SF patch id 1212590]
* DBKeyEmptyError now derives from KeyError just like DBNotFoundError.
* internally everywhere DB_NOTFOUND was checked for has been updated
to also check for DB_KEYEMPTY. This fixes the semantics of a couple
operations on recno and queue databases to be more intuitive and results
in less unexpected DBKeyEmptyError exceptions being raised.
|
|
|
|
|
|
| |
functions written in python.
contributed by <frederic.gobry@epfl.ch>
|
| |
|
|
|
|
| |
* bumped the module version number up to 4.3.0
|
|
|
|
| |
ignoring their transaction (txn) argument.
|
| |
|
| |
|
|
|
|
|
| |
Based on a patch supplied by Ian Ward <ian@arevco.ca> on the pybsddb
mailing list 2004-03-26.
|
|
|
|
|
| |
Make DBTxn objects automatically call abort() in their destructor if
not yet finalized and raise a RuntimeWarning to that effect.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix memory leaks revealed by valgrind and ensuing code inspection.
In the existing test suite valgrind revealed two memory leaks (DB_get
and DBC_set_range). Code inspection revealed that there were many other
potential similar leaks (many on odd code error paths such as passing
something other than a DBTxn object for a txn= parameter or in the face
of an out of memory error). The most common case that would cause a
leak was when using recno or queue format databases with integer keys,
sometimes only with an exception exit.
|