annotate Modules/_bsddb.c @ 58925:eecf1bef052d 2.6

Merged revisions 78207 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r78207 | ezio.melotti | 2010-02-17 01:26:09 +0200 (Wed, 17 Feb 2010) | 1 line #7930: fix stripid ........
author Ezio Melotti <ezio.melotti@gmail.com>
date Tue, 16 Feb 2010 23:29:44 +0000
parents f3eb000487b9
children fbde11d1c1f5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1 /*----------------------------------------------------------------------
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2 Copyright (c) 1999-2001, Digital Creations, Fredericksburg, VA, USA
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3 and Andrew Kuchling. All rights reserved.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5 Redistribution and use in source and binary forms, with or without
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6 modification, are permitted provided that the following conditions are
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7 met:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
8
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
9 o Redistributions of source code must retain the above copyright
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
10 notice, this list of conditions, and the disclaimer that follows.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
11
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
12 o Redistributions in binary form must reproduce the above copyright
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
13 notice, this list of conditions, and the following disclaimer in
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
14 the documentation and/or other materials provided with the
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
15 distribution.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
16
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
17 o Neither the name of Digital Creations nor the names of its
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
18 contributors may be used to endorse or promote products derived
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
19 from this software without specific prior written permission.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
20
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
21 THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS AND CONTRIBUTORS *AS
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
22 IS* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
23 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
24 PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
25 CREATIONS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
26 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
27 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
28 OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
29 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
30 TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
31 USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
32 DAMAGE.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
33 ------------------------------------------------------------------------*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
34
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
35
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
36 /*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
37 * Handwritten code to wrap version 3.x of the Berkeley DB library,
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
38 * written to replace a SWIG-generated file. It has since been updated
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
39 * to compile with Berkeley DB versions 3.2 through 4.2.
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
40 *
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
41 * This module was started by Andrew Kuchling to remove the dependency
43298
a11b4885b445 email address update
Gregory P. Smith <greg@mad-scientist.com>
parents: 42333
diff changeset
42 * on SWIG in a package by Gregory P. Smith who based his work on a
a11b4885b445 email address update
Gregory P. Smith <greg@mad-scientist.com>
parents: 42333
diff changeset
43 * similar package by Robin Dunn <robin@alldunn.com> which wrapped
a11b4885b445 email address update
Gregory P. Smith <greg@mad-scientist.com>
parents: 42333
diff changeset
44 * Berkeley DB 2.7.x.
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
45 *
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
46 * Development of this module then returned full circle back to Robin Dunn
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
47 * who worked on behalf of Digital Creations to complete the wrapping of
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
48 * the DB 3.x API and to build a solid unit test suite. Robin has
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
49 * since gone onto other projects (wxPython).
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
50 *
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
51 * Gregory P. Smith <greg@krypto.org> was once again the maintainer.
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
52 *
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
53 * Since January 2008, new maintainer is Jesus Cea <jcea@jcea.es>.
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
54 * Jesus Cea licenses this code to PSF under a Contributor Agreement.
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
55 *
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
56 * Use the pybsddb-users@lists.sf.net mailing list for all questions.
28769
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
57 * Things can change faster than the header of this file is updated. This
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
58 * file is shared with the PyBSDDB project at SourceForge:
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
59 *
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
60 * http://pybsddb.sf.net
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
61 *
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
62 * This file should remain backward compatible with Python 2.1, but see PEP
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
63 * 291 for the most current backward compatibility requirements:
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
64 *
9466b6e24833 Added a comment about backward compatibility requirements and a link
Barry Warsaw <barry@python.org>
parents: 28732
diff changeset
65 * http://www.python.org/peps/pep-0291.html
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
66 *
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
67 * This module contains 6 types:
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
68 *
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
69 * DB (Database)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
70 * DBCursor (Database Cursor)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
71 * DBEnv (database environment)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
72 * DBTxn (An explicit database transaction)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
73 * DBLock (A lock handle)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
74 * DBSequence (Sequence)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
75 *
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
76 */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
77
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
78 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
79
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
80 /*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
81 * Portions of this module, associated unit tests and build scripts are the
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
82 * result of a contract with The Written Word (http://thewrittenword.com/)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
83 * Many thanks go out to them for causing me to raise the bar on quality and
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
84 * functionality, resulting in a better bsddb3 package for all of us to use.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
85 *
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
86 * --Robin
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
87 */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
88
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
89 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
90
30848
931a58f27ebb * Use weakref's of DBCursor objects for the iterator cursors to avoid a
Gregory P. Smith <greg@mad-scientist.com>
parents: 30837
diff changeset
91 #include <stddef.h> /* for offsetof() */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
92 #include <Python.h>
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
93
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
94 #define COMPILING_BSDDB_C
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
95 #include "bsddb.h"
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
96 #undef COMPILING_BSDDB_C
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
97
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
98 static char *rcs_id = "$Id$";
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
99
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
100 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
101 /* Various macro definitions */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
102
37538
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
103 #if (PY_VERSION_HEX < 0x02050000)
38758
60d79a2bc997 Cleanup Py_ssize_t a little (get rid of second #ifdef)
Neal Norwitz <nnorwitz@gmail.com>
parents: 38735
diff changeset
104 typedef int Py_ssize_t;
37538
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
105 #endif
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
106
47330
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
107 #if (PY_VERSION_HEX < 0x02060000) /* really: before python trunk r63675 */
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
108 /* This code now uses PyBytes* API function names instead of PyString*.
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
109 * These #defines map to their equivalent on earlier python versions. */
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
110 #define PyBytes_FromStringAndSize PyString_FromStringAndSize
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
111 #define PyBytes_FromString PyString_FromString
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
112 #define PyBytes_AsStringAndSize PyString_AsStringAndSize
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
113 #define PyBytes_Check PyString_Check
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
114 #define PyBytes_GET_SIZE PyString_GET_SIZE
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
115 #define PyBytes_AS_STRING PyString_AS_STRING
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
116 #endif
8ff0b925ea64 Define macros so that this still compiles on Python prior to r63675.
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
117
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
118 #if (PY_VERSION_HEX >= 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
119 #define NUMBER_Check PyLong_Check
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
120 #define NUMBER_AsLong PyLong_AsLong
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
121 #define NUMBER_FromLong PyLong_FromLong
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
122 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
123 #define NUMBER_Check PyInt_Check
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
124 #define NUMBER_AsLong PyInt_AsLong
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
125 #define NUMBER_FromLong PyInt_FromLong
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
126 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
127
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
128 #ifdef WITH_THREAD
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
129
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
130 /* These are for when calling Python --> C */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
131 #define MYDB_BEGIN_ALLOW_THREADS Py_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
132 #define MYDB_END_ALLOW_THREADS Py_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
133
28732
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
134 /* For 2.3, use the PyGILState_ calls */
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
135 #if (PY_VERSION_HEX >= 0x02030000)
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
136 #define MYDB_USE_GILSTATE
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
137 #endif
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
138
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
139 /* and these are for calling C --> Python */
28732
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
140 #if defined(MYDB_USE_GILSTATE)
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
141 #define MYDB_BEGIN_BLOCK_THREADS \
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
142 PyGILState_STATE __savestate = PyGILState_Ensure();
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
143 #define MYDB_END_BLOCK_THREADS \
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
144 PyGILState_Release(__savestate);
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
145 #else /* MYDB_USE_GILSTATE */
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
146 /* Pre GILState API - do it the long old way */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
147 static PyInterpreterState* _db_interpreterState = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
148 #define MYDB_BEGIN_BLOCK_THREADS { \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
149 PyThreadState* prevState; \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
150 PyThreadState* newState; \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
151 PyEval_AcquireLock(); \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
152 newState = PyThreadState_New(_db_interpreterState); \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
153 prevState = PyThreadState_Swap(newState);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
154
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
155 #define MYDB_END_BLOCK_THREADS \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
156 newState = PyThreadState_Swap(prevState); \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
157 PyThreadState_Clear(newState); \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
158 PyEval_ReleaseLock(); \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
159 PyThreadState_Delete(newState); \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
160 }
28732
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
161 #endif /* MYDB_USE_GILSTATE */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
162
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
163 #else
28732
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
164 /* Compiled without threads - avoid all this cruft */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
165 #define MYDB_BEGIN_ALLOW_THREADS
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
166 #define MYDB_END_ALLOW_THREADS
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
167 #define MYDB_BEGIN_BLOCK_THREADS
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
168 #define MYDB_END_BLOCK_THREADS
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
169
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
170 #endif
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
171
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
172 /* Should DB_INCOMPLETE be turned into a warning or an exception? */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
173 #define INCOMPLETE_IS_WARNING 1
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
174
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
175 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
176 /* Exceptions */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
177
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
178 static PyObject* DBError; /* Base class, all others derive from this */
30836
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
179 static PyObject* DBCursorClosedError; /* raised when trying to use a closed cursor object */
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
180 static PyObject* DBKeyEmptyError; /* DB_KEYEMPTY: also derives from KeyError */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
181 static PyObject* DBKeyExistError; /* DB_KEYEXIST */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
182 static PyObject* DBLockDeadlockError; /* DB_LOCK_DEADLOCK */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
183 static PyObject* DBLockNotGrantedError; /* DB_LOCK_NOTGRANTED */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
184 static PyObject* DBNotFoundError; /* DB_NOTFOUND: also derives from KeyError */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
185 static PyObject* DBOldVersionError; /* DB_OLD_VERSION */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
186 static PyObject* DBRunRecoveryError; /* DB_RUNRECOVERY */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
187 static PyObject* DBVerifyBadError; /* DB_VERIFY_BAD */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
188 static PyObject* DBNoServerError; /* DB_NOSERVER */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
189 static PyObject* DBNoServerHomeError; /* DB_NOSERVER_HOME */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
190 static PyObject* DBNoServerIDError; /* DB_NOSERVER_ID */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
191 static PyObject* DBPageNotFoundError; /* DB_PAGE_NOTFOUND */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
192 static PyObject* DBSecondaryBadError; /* DB_SECONDARY_BAD */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
193
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
194 #if !INCOMPLETE_IS_WARNING
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
195 static PyObject* DBIncompleteError; /* DB_INCOMPLETE */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
196 #endif
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
197
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
198 static PyObject* DBInvalidArgError; /* EINVAL */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
199 static PyObject* DBAccessError; /* EACCES */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
200 static PyObject* DBNoSpaceError; /* ENOSPC */
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
201 static PyObject* DBNoMemoryError; /* DB_BUFFER_SMALL (ENOMEM when < 4.3) */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
202 static PyObject* DBAgainError; /* EAGAIN */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
203 static PyObject* DBBusyError; /* EBUSY */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
204 static PyObject* DBFileExistsError; /* EEXIST */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
205 static PyObject* DBNoSuchFileError; /* ENOENT */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
206 static PyObject* DBPermissionsError; /* EPERM */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
207
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
208 #if (DBVER >= 42)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
209 static PyObject* DBRepHandleDeadError; /* DB_REP_HANDLE_DEAD */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
210 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
211
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
212 static PyObject* DBRepUnavailError; /* DB_REP_UNAVAIL */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
213
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
214 #if (DBVER < 43)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
215 #define DB_BUFFER_SMALL ENOMEM
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
216 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
217
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
218
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
219 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
220 /* Structure definitions */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
221
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
222 #if PYTHON_API_VERSION < 1010
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
223 #error "Python 2.1 or later required"
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
224 #endif
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
225
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
226
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
227 /* Defaults for moduleFlags in DBEnvObject and DBObject. */
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
228 #define DEFAULT_GET_RETURNS_NONE 1
30848
931a58f27ebb * Use weakref's of DBCursor objects for the iterator cursors to avoid a
Gregory P. Smith <greg@mad-scientist.com>
parents: 30837
diff changeset
229 #define DEFAULT_CURSOR_SET_RETURNS_NONE 1 /* 0 in pybsddb < 4.2, python < 2.4 */
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
230
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
231
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
232 /* See comment in Python 2.6 "object.h" */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
233 #ifndef staticforward
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
234 #define staticforward static
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
235 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
236 #ifndef statichere
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
237 #define statichere static
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
238 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
239
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
240 staticforward PyTypeObject DB_Type, DBCursor_Type, DBEnv_Type, DBTxn_Type,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
241 DBLock_Type;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
242 #if (DBVER >= 43)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
243 staticforward PyTypeObject DBSequence_Type;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
244 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
245
46543
a0225600bff1 Fix typo.
Martin v. Löwis <martin@v.loewis.de>
parents: 45126
diff changeset
246 #ifndef Py_TYPE
43768
37423c76e208 * db->get_types is only available in BerkeleyDB >= 4.2
Gregory P. Smith <greg@mad-scientist.com>
parents: 43767
diff changeset
247 /* for compatibility with Python 2.5 and earlier */
44350
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
248 #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
43768
37423c76e208 * db->get_types is only available in BerkeleyDB >= 4.2
Gregory P. Smith <greg@mad-scientist.com>
parents: 43767
diff changeset
249 #endif
37423c76e208 * db->get_types is only available in BerkeleyDB >= 4.2
Gregory P. Smith <greg@mad-scientist.com>
parents: 43767
diff changeset
250
44350
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
251 #define DBObject_Check(v) (Py_TYPE(v) == &DB_Type)
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
252 #define DBCursorObject_Check(v) (Py_TYPE(v) == &DBCursor_Type)
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
253 #define DBEnvObject_Check(v) (Py_TYPE(v) == &DBEnv_Type)
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
254 #define DBTxnObject_Check(v) (Py_TYPE(v) == &DBTxn_Type)
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
255 #define DBLockObject_Check(v) (Py_TYPE(v) == &DBLock_Type)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
256 #if (DBVER >= 43)
44350
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
257 #define DBSequenceObject_Check(v) (Py_TYPE(v) == &DBSequence_Type)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
258 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
259
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
260 #if (DBVER < 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
261 #define _DBC_close(dbc) dbc->c_close(dbc)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
262 #define _DBC_count(dbc,a,b) dbc->c_count(dbc,a,b)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
263 #define _DBC_del(dbc,a) dbc->c_del(dbc,a)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
264 #define _DBC_dup(dbc,a,b) dbc->c_dup(dbc,a,b)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
265 #define _DBC_get(dbc,a,b,c) dbc->c_get(dbc,a,b,c)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
266 #define _DBC_pget(dbc,a,b,c,d) dbc->c_pget(dbc,a,b,c,d)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
267 #define _DBC_put(dbc,a,b,c) dbc->c_put(dbc,a,b,c)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
268 #else
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
269 #define _DBC_close(dbc) dbc->close(dbc)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
270 #define _DBC_count(dbc,a,b) dbc->count(dbc,a,b)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
271 #define _DBC_del(dbc,a) dbc->del(dbc,a)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
272 #define _DBC_dup(dbc,a,b) dbc->dup(dbc,a,b)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
273 #define _DBC_get(dbc,a,b,c) dbc->get(dbc,a,b,c)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
274 #define _DBC_pget(dbc,a,b,c,d) dbc->pget(dbc,a,b,c,d)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
275 #define _DBC_put(dbc,a,b,c) dbc->put(dbc,a,b,c)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
276 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
277
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
278
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
279 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
280 /* Utility macros and functions */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
281
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
282 #define INSERT_IN_DOUBLE_LINKED_LIST(backlink,object) \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
283 { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
284 object->sibling_next=backlink; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
285 object->sibling_prev_p=&(backlink); \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
286 backlink=object; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
287 if (object->sibling_next) { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
288 object->sibling_next->sibling_prev_p=&(object->sibling_next); \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
289 } \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
290 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
291
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
292 #define EXTRACT_FROM_DOUBLE_LINKED_LIST(object) \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
293 { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
294 if (object->sibling_next) { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
295 object->sibling_next->sibling_prev_p=object->sibling_prev_p; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
296 } \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
297 *(object->sibling_prev_p)=object->sibling_next; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
298 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
299
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
300 #define EXTRACT_FROM_DOUBLE_LINKED_LIST_MAYBE_NULL(object) \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
301 { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
302 if (object->sibling_next) { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
303 object->sibling_next->sibling_prev_p=object->sibling_prev_p; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
304 } \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
305 if (object->sibling_prev_p) { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
306 *(object->sibling_prev_p)=object->sibling_next; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
307 } \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
308 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
309
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
310 #define INSERT_IN_DOUBLE_LINKED_LIST_TXN(backlink,object) \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
311 { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
312 object->sibling_next_txn=backlink; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
313 object->sibling_prev_p_txn=&(backlink); \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
314 backlink=object; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
315 if (object->sibling_next_txn) { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
316 object->sibling_next_txn->sibling_prev_p_txn= \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
317 &(object->sibling_next_txn); \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
318 } \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
319 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
320
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
321 #define EXTRACT_FROM_DOUBLE_LINKED_LIST_TXN(object) \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
322 { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
323 if (object->sibling_next_txn) { \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
324 object->sibling_next_txn->sibling_prev_p_txn= \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
325 object->sibling_prev_p_txn; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
326 } \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
327 *(object->sibling_prev_p_txn)=object->sibling_next_txn; \
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
328 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
329
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
330
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
331 #define RETURN_IF_ERR() \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
332 if (makeDBError(err)) { \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
333 return NULL; \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
334 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
335
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
336 #define RETURN_NONE() Py_INCREF(Py_None); return Py_None;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
337
30836
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
338 #define _CHECK_OBJECT_NOT_CLOSED(nonNull, pyErrObj, name) \
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
339 if ((nonNull) == NULL) { \
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
340 PyObject *errTuple = NULL; \
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
341 errTuple = Py_BuildValue("(is)", 0, #name " object has been closed"); \
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
342 if (errTuple) { \
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
343 PyErr_SetObject((pyErrObj), errTuple); \
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
344 Py_DECREF(errTuple); \
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
345 } \
30836
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
346 return NULL; \
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
347 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
348
30836
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
349 #define CHECK_DB_NOT_CLOSED(dbobj) \
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
350 _CHECK_OBJECT_NOT_CLOSED(dbobj->db, DBError, DB)
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
351
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
352 #define CHECK_ENV_NOT_CLOSED(env) \
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
353 _CHECK_OBJECT_NOT_CLOSED(env->db_env, DBError, DBEnv)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
354
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
355 #define CHECK_CURSOR_NOT_CLOSED(curs) \
30836
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
356 _CHECK_OBJECT_NOT_CLOSED(curs->dbc, DBCursorClosedError, DBCursor)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
357
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
358 #if (DBVER >= 43)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
359 #define CHECK_SEQUENCE_NOT_CLOSED(curs) \
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
360 _CHECK_OBJECT_NOT_CLOSED(curs->sequence, DBError, DBSequence)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
361 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
362
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
363 #define CHECK_DBFLAG(mydb, flag) (((mydb)->flags & (flag)) || \
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
364 (((mydb)->myenvobj != NULL) && ((mydb)->myenvobj->flags & (flag))))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
365
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
366 #define CLEAR_DBT(dbt) (memset(&(dbt), 0, sizeof(dbt)))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
367
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
368 #define FREE_DBT(dbt) if ((dbt.flags & (DB_DBT_MALLOC|DB_DBT_REALLOC)) && \
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
369 dbt.data != NULL) { free(dbt.data); dbt.data = NULL; }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
370
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
371
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
372 static int makeDBError(int err);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
373
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
374
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
375 /* Return the access method type of the DBObject */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
376 static int _DB_get_type(DBObject* self)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
377 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
378 DBTYPE type;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
379 int err;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
380
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
381 err = self->db->get_type(self->db, &type);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
382 if (makeDBError(err)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
383 return -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
384 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
385 return type;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
386 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
387
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
388
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
389 /* Create a DBT structure (containing key and data values) from Python
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
390 strings. Returns 1 on success, 0 on an error. */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
391 static int make_dbt(PyObject* obj, DBT* dbt)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
392 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
393 CLEAR_DBT(*dbt);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
394 if (obj == Py_None) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
395 /* no need to do anything, the structure has already been zeroed */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
396 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
397 else if (!PyArg_Parse(obj, "s#", &dbt->data, &dbt->size)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
398 PyErr_SetString(PyExc_TypeError,
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
399 #if (PY_VERSION_HEX < 0x03000000)
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
400 "Data values must be of type string or None.");
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
401 #else
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
402 "Data values must be of type bytes or None.");
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
403 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
404 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
405 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
406 return 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
407 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
408
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
409
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
410 /* Recno and Queue DBs can have integer keys. This function figures out
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
411 what's been given, verifies that it's allowed, and then makes the DBT.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
412
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
413 Caller MUST call FREE_DBT(key) when done. */
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
414 static int
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
415 make_key_dbt(DBObject* self, PyObject* keyobj, DBT* key, int* pflags)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
416 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
417 db_recno_t recno;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
418 int type;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
419
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
420 CLEAR_DBT(*key);
31399
0fce5b173a74 Removing TODO comment for None keys, as suggested by Neal Norwitz.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 31398
diff changeset
421 if (keyobj == Py_None) {
31397
b9057a6763d7 Fixing #880531: raise TypeError when trying to use a None key with RECNO
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 30850
diff changeset
422 type = _DB_get_type(self);
31398
b3d7ebc13d7d When key is None, give up if _DB_get_type() returns -1 as well.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 31397
diff changeset
423 if (type == -1)
b3d7ebc13d7d When key is None, give up if _DB_get_type() returns -1 as well.
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 31397
diff changeset
424 return 0;
31397
b9057a6763d7 Fixing #880531: raise TypeError when trying to use a None key with RECNO
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 30850
diff changeset
425 if (type == DB_RECNO || type == DB_QUEUE) {
b9057a6763d7 Fixing #880531: raise TypeError when trying to use a None key with RECNO
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 30850
diff changeset
426 PyErr_SetString(
b9057a6763d7 Fixing #880531: raise TypeError when trying to use a None key with RECNO
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 30850
diff changeset
427 PyExc_TypeError,
b9057a6763d7 Fixing #880531: raise TypeError when trying to use a None key with RECNO
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 30850
diff changeset
428 "None keys not allowed for Recno and Queue DB's");
b9057a6763d7 Fixing #880531: raise TypeError when trying to use a None key with RECNO
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 30850
diff changeset
429 return 0;
b9057a6763d7 Fixing #880531: raise TypeError when trying to use a None key with RECNO
Gustavo Niemeyer <gustavo@niemeyer.net>
parents: 30850
diff changeset
430 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
431 /* no need to do anything, the structure has already been zeroed */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
432 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
433
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
434 else if (PyBytes_Check(keyobj)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
435 /* verify access method type */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
436 type = _DB_get_type(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
437 if (type == -1)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
438 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
439 if (type == DB_RECNO || type == DB_QUEUE) {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
440 PyErr_SetString(
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
441 PyExc_TypeError,
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
442 #if (PY_VERSION_HEX < 0x03000000)
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
443 "String keys not allowed for Recno and Queue DB's");
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
444 #else
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
445 "Bytes keys not allowed for Recno and Queue DB's");
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
446 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
447 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
448 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
449
43505
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
450 /*
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
451 * NOTE(gps): I don't like doing a data copy here, it seems
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
452 * wasteful. But without a clean way to tell FREE_DBT if it
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
453 * should free key->data or not we have to. Other places in
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
454 * the code check for DB_THREAD and forceably set DBT_MALLOC
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
455 * when we otherwise would leave flags 0 to indicate that.
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
456 */
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
457 key->data = malloc(PyBytes_GET_SIZE(keyobj));
43505
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
458 if (key->data == NULL) {
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
459 PyErr_SetString(PyExc_MemoryError, "Key memory allocation failed");
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
460 return 0;
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
461 }
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
462 memcpy(key->data, PyBytes_AS_STRING(keyobj),
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
463 PyBytes_GET_SIZE(keyobj));
43505
9c3015fc5bf4 Fix a double free when positioning a database cursor to a non-existant
Gregory P. Smith <greg@mad-scientist.com>
parents: 43504
diff changeset
464 key->flags = DB_DBT_REALLOC;
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
465 key->size = PyBytes_GET_SIZE(keyobj);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
466 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
467
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
468 else if (NUMBER_Check(keyobj)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
469 /* verify access method type */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
470 type = _DB_get_type(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
471 if (type == -1)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
472 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
473 if (type == DB_BTREE && pflags != NULL) {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
474 /* if BTREE then an Integer key is allowed with the
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
475 * DB_SET_RECNO flag */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
476 *pflags |= DB_SET_RECNO;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
477 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
478 else if (type != DB_RECNO && type != DB_QUEUE) {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
479 PyErr_SetString(
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
480 PyExc_TypeError,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
481 "Integer keys only allowed for Recno and Queue DB's");
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
482 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
483 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
484
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
485 /* Make a key out of the requested recno, use allocated space so DB
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
486 * will be able to realloc room for the real key if needed. */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
487 recno = NUMBER_AsLong(keyobj);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
488 key->data = malloc(sizeof(db_recno_t));
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
489 if (key->data == NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
490 PyErr_SetString(PyExc_MemoryError, "Key memory allocation failed");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
491 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
492 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
493 key->ulen = key->size = sizeof(db_recno_t);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
494 memcpy(key->data, &recno, sizeof(db_recno_t));
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
495 key->flags = DB_DBT_REALLOC;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
496 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
497 else {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
498 PyErr_Format(PyExc_TypeError,
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
499 #if (PY_VERSION_HEX < 0x03000000)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
500 "String or Integer object expected for key, %s found",
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
501 #else
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
502 "Bytes or Integer object expected for key, %s found",
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
503 #endif
44350
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
504 Py_TYPE(keyobj)->tp_name);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
505 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
506 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
507
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
508 return 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
509 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
510
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
511
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
512 /* Add partial record access to an existing DBT data struct.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
513 If dlen and doff are set, then the DB_DBT_PARTIAL flag will be set
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
514 and the data storage/retrieval will be done using dlen and doff. */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
515 static int add_partial_dbt(DBT* d, int dlen, int doff) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
516 /* if neither were set we do nothing (-1 is the default value) */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
517 if ((dlen == -1) && (doff == -1)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
518 return 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
519 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
520
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
521 if ((dlen < 0) || (doff < 0)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
522 PyErr_SetString(PyExc_TypeError, "dlen and doff must both be >= 0");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
523 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
524 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
525
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
526 d->flags = d->flags | DB_DBT_PARTIAL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
527 d->dlen = (unsigned int) dlen;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
528 d->doff = (unsigned int) doff;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
529 return 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
530 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
531
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
532 /* a safe strcpy() without the zeroing behaviour and semantics of strncpy. */
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
533 /* TODO: make this use the native libc strlcpy() when available (BSD) */
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
534 unsigned int our_strlcpy(char* dest, const char* src, unsigned int n)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
535 {
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
536 unsigned int srclen, copylen;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
537
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
538 srclen = strlen(src);
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
539 if (n <= 0)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
540 return srclen;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
541 copylen = (srclen > n-1) ? n-1 : srclen;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
542 /* populate dest[0] thru dest[copylen-1] */
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
543 memcpy(dest, src, copylen);
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
544 /* guarantee null termination */
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
545 dest[copylen] = 0;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
546
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
547 return srclen;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
548 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
549
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
550 /* Callback used to save away more information about errors from the DB
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
551 * library. */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
552 static char _db_errmsg[1024];
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
553 #if (DBVER <= 42)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
554 static void _db_errorCallback(const char* prefix, char* msg)
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
555 #else
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
556 static void _db_errorCallback(const DB_ENV *db_env,
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
557 const char* prefix, const char* msg)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
558 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
559 {
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
560 our_strlcpy(_db_errmsg, msg, sizeof(_db_errmsg));
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
561 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
562
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
563
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
564 /*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
565 ** We need these functions because some results
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
566 ** are undefined if pointer is NULL. Some other
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
567 ** give None instead of "".
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
568 **
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
569 ** This functions are static and will be
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
570 ** -I hope- inlined.
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
571 */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
572 static const char *DummyString = "This string is a simple placeholder";
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
573 static PyObject *Build_PyString(const char *p,int s)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
574 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
575 if (!p) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
576 p=DummyString;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
577 assert(s==0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
578 }
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
579 return PyBytes_FromStringAndSize(p,s);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
580 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
581
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
582 static PyObject *BuildValue_S(const void *p,int s)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
583 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
584 if (!p) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
585 p=DummyString;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
586 assert(s==0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
587 }
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
588 return PyBytes_FromStringAndSize(p, s);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
589 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
590
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
591 static PyObject *BuildValue_SS(const void *p1,int s1,const void *p2,int s2)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
592 {
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
593 PyObject *a, *b, *r;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
594
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
595 if (!p1) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
596 p1=DummyString;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
597 assert(s1==0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
598 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
599 if (!p2) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
600 p2=DummyString;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
601 assert(s2==0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
602 }
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
603
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
604 if (!(a = PyBytes_FromStringAndSize(p1, s1))) {
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
605 return NULL;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
606 }
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
607 if (!(b = PyBytes_FromStringAndSize(p2, s2))) {
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
608 Py_DECREF(a);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
609 return NULL;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
610 }
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
611
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
612 #if (PY_VERSION_HEX >= 0x02040000)
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
613 r = PyTuple_Pack(2, a, b) ;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
614 #else
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
615 r = Py_BuildValue("OO", a, b);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
616 #endif
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
617 Py_DECREF(a);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
618 Py_DECREF(b);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
619 return r;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
620 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
621
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
622 static PyObject *BuildValue_IS(int i,const void *p,int s)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
623 {
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
624 PyObject *a, *r;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
625
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
626 if (!p) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
627 p=DummyString;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
628 assert(s==0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
629 }
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
630
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
631 if (!(a = PyBytes_FromStringAndSize(p, s))) {
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
632 return NULL;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
633 }
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
634
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
635 r = Py_BuildValue("iO", i, a);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
636 Py_DECREF(a);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
637 return r;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
638 }
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
639
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
640 static PyObject *BuildValue_LS(long l,const void *p,int s)
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
641 {
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
642 PyObject *a, *r;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
643
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
644 if (!p) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
645 p=DummyString;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
646 assert(s==0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
647 }
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
648
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
649 if (!(a = PyBytes_FromStringAndSize(p, s))) {
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
650 return NULL;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
651 }
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
652
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
653 r = Py_BuildValue("lO", l, a);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
654 Py_DECREF(a);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
655 return r;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
656 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
657
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
658
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
659
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
660 /* make a nice exception object to raise for errors. */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
661 static int makeDBError(int err)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
662 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
663 char errTxt[2048]; /* really big, just in case... */
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
664 PyObject *errObj = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
665 PyObject *errTuple = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
666 int exceptionRaised = 0;
39145
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
667 unsigned int bytes_left;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
668
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
669 switch (err) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
670 case 0: /* successful, no error */ break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
671
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
672 #if (DBVER < 41)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
673 case DB_INCOMPLETE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
674 #if INCOMPLETE_IS_WARNING
39145
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
675 bytes_left = our_strlcpy(errTxt, db_strerror(err), sizeof(errTxt));
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
676 /* Ensure that bytes_left never goes negative */
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
677 if (_db_errmsg[0] && bytes_left < (sizeof(errTxt) - 4)) {
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
678 bytes_left = sizeof(errTxt) - bytes_left - 4 - 1;
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
679 assert(bytes_left >= 0);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
680 strcat(errTxt, " -- ");
39145
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
681 strncat(errTxt, _db_errmsg, bytes_left);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
682 }
39145
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
683 _db_errmsg[0] = 0;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
684 exceptionRaised = PyErr_Warn(PyExc_RuntimeWarning, errTxt);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
685
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
686 #else /* do an exception instead */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
687 errObj = DBIncompleteError;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
688 #endif
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
689 break;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
690 #endif /* DBVER < 41 */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
691
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
692 case DB_KEYEMPTY: errObj = DBKeyEmptyError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
693 case DB_KEYEXIST: errObj = DBKeyExistError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
694 case DB_LOCK_DEADLOCK: errObj = DBLockDeadlockError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
695 case DB_LOCK_NOTGRANTED: errObj = DBLockNotGrantedError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
696 case DB_NOTFOUND: errObj = DBNotFoundError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
697 case DB_OLD_VERSION: errObj = DBOldVersionError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
698 case DB_RUNRECOVERY: errObj = DBRunRecoveryError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
699 case DB_VERIFY_BAD: errObj = DBVerifyBadError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
700 case DB_NOSERVER: errObj = DBNoServerError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
701 case DB_NOSERVER_HOME: errObj = DBNoServerHomeError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
702 case DB_NOSERVER_ID: errObj = DBNoServerIDError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
703 case DB_PAGE_NOTFOUND: errObj = DBPageNotFoundError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
704 case DB_SECONDARY_BAD: errObj = DBSecondaryBadError; break;
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
705 case DB_BUFFER_SMALL: errObj = DBNoMemoryError; break;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
706
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
707 #if (DBVER >= 43)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
708 /* ENOMEM and DB_BUFFER_SMALL were one and the same until 4.3 */
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
709 case ENOMEM: errObj = PyExc_MemoryError; break;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
710 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
711 case EINVAL: errObj = DBInvalidArgError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
712 case EACCES: errObj = DBAccessError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
713 case ENOSPC: errObj = DBNoSpaceError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
714 case EAGAIN: errObj = DBAgainError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
715 case EBUSY : errObj = DBBusyError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
716 case EEXIST: errObj = DBFileExistsError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
717 case ENOENT: errObj = DBNoSuchFileError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
718 case EPERM : errObj = DBPermissionsError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
719
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
720 #if (DBVER >= 42)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
721 case DB_REP_HANDLE_DEAD : errObj = DBRepHandleDeadError; break;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
722 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
723
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
724 case DB_REP_UNAVAIL : errObj = DBRepUnavailError; break;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
725
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
726 default: errObj = DBError; break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
727 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
728
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
729 if (errObj != NULL) {
39145
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
730 bytes_left = our_strlcpy(errTxt, db_strerror(err), sizeof(errTxt));
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
731 /* Ensure that bytes_left never goes negative */
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
732 if (_db_errmsg[0] && bytes_left < (sizeof(errTxt) - 4)) {
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
733 bytes_left = sizeof(errTxt) - bytes_left - 4 - 1;
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
734 assert(bytes_left >= 0);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
735 strcat(errTxt, " -- ");
39145
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
736 strncat(errTxt, _db_errmsg, bytes_left);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
737 }
39145
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
738 _db_errmsg[0] = 0;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
739
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
740 errTuple = Py_BuildValue("(is)", err, errTxt);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
741 if (errTuple == NULL) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
742 Py_DECREF(errObj);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
743 return !0;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
744 }
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
745 PyErr_SetObject(errObj, errTuple);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
746 Py_DECREF(errTuple);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
747 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
748
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
749 return ((errObj != NULL) || exceptionRaised);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
750 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
751
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
752
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
753
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
754 /* set a type exception */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
755 static void makeTypeError(char* expected, PyObject* found)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
756 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
757 PyErr_Format(PyExc_TypeError, "Expected %s argument, %s found.",
44350
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 43768
diff changeset
758 expected, Py_TYPE(found)->tp_name);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
759 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
760
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
761
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
762 /* verify that an obj is either None or a DBTxn, and set the txn pointer */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
763 static int checkTxnObj(PyObject* txnobj, DB_TXN** txn)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
764 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
765 if (txnobj == Py_None || txnobj == NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
766 *txn = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
767 return 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
768 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
769 if (DBTxnObject_Check(txnobj)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
770 *txn = ((DBTxnObject*)txnobj)->txn;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
771 return 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
772 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
773 else
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
774 makeTypeError("DBTxn", txnobj);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
775 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
776 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
777
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
778
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
779 /* Delete a key from a database
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
780 Returns 0 on success, -1 on an error. */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
781 static int _DB_delete(DBObject* self, DB_TXN *txn, DBT *key, int flags)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
782 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
783 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
784
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
785 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
786 err = self->db->del(self->db, txn, key, 0);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
787 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
788 if (makeDBError(err)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
789 return -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
790 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
791 self->haveStat = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
792 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
793 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
794
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
795
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
796 /* Store a key into a database
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
797 Returns 0 on success, -1 on an error. */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
798 static int _DB_put(DBObject* self, DB_TXN *txn, DBT *key, DBT *data, int flags)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
799 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
800 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
801
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
802 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
803 err = self->db->put(self->db, txn, key, data, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
804 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
805 if (makeDBError(err)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
806 return -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
807 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
808 self->haveStat = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
809 return 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
810 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
811
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
812 /* Get a key/data pair from a cursor */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
813 static PyObject* _DBCursor_get(DBCursorObject* self, int extra_flags,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
814 PyObject *args, PyObject *kwargs, char *format)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
815 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
816 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
817 PyObject* retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
818 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
819 int dlen = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
820 int doff = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
821 int flags = 0;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
822 static char* kwnames[] = { "flags", "dlen", "doff", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
823
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
824 if (!PyArg_ParseTupleAndKeywords(args, kwargs, format, kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
825 &flags, &dlen, &doff))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
826 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
827
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
828 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
829
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
830 flags |= extra_flags;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
831 CLEAR_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
832 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
833 if (!add_partial_dbt(&data, dlen, doff))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
834 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
835
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
836 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
837 err = _DBC_get(self->dbc, &key, &data, flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
838 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
839
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
840 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
841 && self->mydb->moduleFlags.getReturnsNone) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
842 Py_INCREF(Py_None);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
843 retval = Py_None;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
844 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
845 else if (makeDBError(err)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
846 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
847 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
848 else { /* otherwise, success! */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
849
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
850 /* if Recno or Queue, return the key as an Int */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
851 switch (_DB_get_type(self->mydb)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
852 case -1:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
853 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
854 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
855
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
856 case DB_RECNO:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
857 case DB_QUEUE:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
858 retval = BuildValue_IS(*((db_recno_t*)key.data), data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
859 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
860 case DB_HASH:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
861 case DB_BTREE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
862 default:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
863 retval = BuildValue_SS(key.data, key.size, data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
864 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
865 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
866 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
867 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
868 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
869
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
870
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
871 /* add an integer to a dictionary using the given name as a key */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
872 static void _addIntToDict(PyObject* dict, char *name, int value)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
873 {
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
874 PyObject* v = NUMBER_FromLong((long) value);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
875 if (!v || PyDict_SetItemString(dict, name, v))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
876 PyErr_Clear();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
877
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
878 Py_XDECREF(v);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
879 }
41549
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
880
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
881 /* The same, when the value is a time_t */
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
882 static void _addTimeTToDict(PyObject* dict, char *name, time_t value)
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
883 {
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
884 PyObject* v;
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
885 /* if the value fits in regular int, use that. */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
886 #ifdef PY_LONG_LONG
41549
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
887 if (sizeof(time_t) > sizeof(long))
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
888 v = PyLong_FromLongLong((PY_LONG_LONG) value);
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
889 else
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
890 #endif
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
891 v = NUMBER_FromLong((long) value);
41549
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
892 if (!v || PyDict_SetItemString(dict, name, v))
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
893 PyErr_Clear();
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
894
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
895 Py_XDECREF(v);
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
896 }
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
897
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
898 #if (DBVER >= 43)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
899 /* add an db_seq_t to a dictionary using the given name as a key */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
900 static void _addDb_seq_tToDict(PyObject* dict, char *name, db_seq_t value)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
901 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
902 PyObject* v = PyLong_FromLongLong(value);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
903 if (!v || PyDict_SetItemString(dict, name, v))
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
904 PyErr_Clear();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
905
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
906 Py_XDECREF(v);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
907 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
908 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
909
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
910 static void _addDB_lsnToDict(PyObject* dict, char *name, DB_LSN value)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
911 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
912 PyObject *v = Py_BuildValue("(ll)",value.file,value.offset);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
913 if (!v || PyDict_SetItemString(dict, name, v))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
914 PyErr_Clear();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
915
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
916 Py_XDECREF(v);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
917 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
918
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
919 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
920 /* Allocators and deallocators */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
921
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
922 static DBObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
923 newDBObject(DBEnvObject* arg, int flags)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
924 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
925 DBObject* self;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
926 DB_ENV* db_env = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
927 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
928
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
929 self = PyObject_New(DBObject, &DB_Type);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
930 if (self == NULL)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
931 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
932
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
933 self->haveStat = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
934 self->flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
935 self->setflags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
936 self->myenvobj = NULL;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
937 self->db = NULL;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
938 self->children_cursors = NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
939 #if (DBVER >=43)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
940 self->children_sequences = NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
941 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
942 self->associateCallback = NULL;
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
943 self->btCompareCallback = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
944 self->primaryDBType = 0;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
945 Py_INCREF(Py_None);
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
946 self->private_obj = Py_None;
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
947 self->in_weakreflist = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
948
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
949 /* keep a reference to our python DBEnv object */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
950 if (arg) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
951 Py_INCREF(arg);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
952 self->myenvobj = arg;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
953 db_env = arg->db_env;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
954 INSERT_IN_DOUBLE_LINKED_LIST(self->myenvobj->children_dbs,self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
955 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
956 self->sibling_prev_p=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
957 self->sibling_next=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
958 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
959 self->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
960 self->sibling_prev_p_txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
961 self->sibling_next_txn=NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
962
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
963 if (self->myenvobj)
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
964 self->moduleFlags = self->myenvobj->moduleFlags;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
965 else
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
966 self->moduleFlags.getReturnsNone = DEFAULT_GET_RETURNS_NONE;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
967 self->moduleFlags.cursorSetReturnsNone = DEFAULT_CURSOR_SET_RETURNS_NONE;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
968
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
969 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
970 err = db_create(&self->db, db_env, flags);
39145
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
971 if (self->db != NULL) {
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
972 self->db->set_errcall(self->db, _db_errorCallback);
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
973 self->db->app_private = (void*)self;
957bf3119247 Ensure we don't write beyond errText. I think I got this right, but
Neal Norwitz <nnorwitz@gmail.com>
parents: 38864
diff changeset
974 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
975 MYDB_END_ALLOW_THREADS;
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
976 /* TODO add a weakref(self) to the self->myenvobj->open_child_weakrefs
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
977 * list so that a DBEnv can refuse to close without aborting any open
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
978 * DBTxns and closing any open DBs first. */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
979 if (makeDBError(err)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
980 if (self->myenvobj) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
981 Py_DECREF(self->myenvobj);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
982 self->myenvobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
983 }
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
984 Py_DECREF(self);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
985 self = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
986 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
987 return self;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
988 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
989
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
990
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
991 /* Forward declaration */
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
992 static PyObject *DB_close_internal(DBObject* self, int flags, int do_not_close);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
993
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
994 static void
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
995 DB_dealloc(DBObject* self)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
996 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
997 PyObject *dummy;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
998
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
999 if (self->db != NULL) {
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1000 dummy=DB_close_internal(self, 0, 0);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1001 /*
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1002 ** Raising exceptions while doing
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1003 ** garbage collection is a fatal error.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1004 */
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1005 if (dummy)
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1006 Py_DECREF(dummy);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1007 else
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1008 PyErr_Clear();
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1009 }
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1010 if (self->in_weakreflist != NULL) {
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1011 PyObject_ClearWeakRefs((PyObject *) self);
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1012 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1013 if (self->myenvobj) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1014 Py_DECREF(self->myenvobj);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1015 self->myenvobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1016 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1017 if (self->associateCallback != NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1018 Py_DECREF(self->associateCallback);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1019 self->associateCallback = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1020 }
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
1021 if (self->btCompareCallback != NULL) {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
1022 Py_DECREF(self->btCompareCallback);
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
1023 self->btCompareCallback = NULL;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
1024 }
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1025 Py_DECREF(self->private_obj);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1026 PyObject_Del(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1027 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1028
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1029 static DBCursorObject*
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1030 newDBCursorObject(DBC* dbc, DBTxnObject *txn, DBObject* db)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1031 {
32564
cf138c55d41b Cleanup support for older pythons (perhaps it should be removed?)
Neal Norwitz <nnorwitz@gmail.com>
parents: 32431
diff changeset
1032 DBCursorObject* self = PyObject_New(DBCursorObject, &DBCursor_Type);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1033 if (self == NULL)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1034 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1035
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1036 self->dbc = dbc;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1037 self->mydb = db;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1038
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1039 INSERT_IN_DOUBLE_LINKED_LIST(self->mydb->children_cursors,self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1040 if (txn && ((PyObject *)txn!=Py_None)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1041 INSERT_IN_DOUBLE_LINKED_LIST_TXN(txn->children_cursors,self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1042 self->txn=txn;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1043 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1044 self->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1045 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1046
30848
931a58f27ebb * Use weakref's of DBCursor objects for the iterator cursors to avoid a
Gregory P. Smith <greg@mad-scientist.com>
parents: 30837
diff changeset
1047 self->in_weakreflist = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1048 Py_INCREF(self->mydb);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1049 return self;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1050 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1051
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1052
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1053 /* Forward declaration */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1054 static PyObject *DBC_close_internal(DBCursorObject* self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1055
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1056 static void
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1057 DBCursor_dealloc(DBCursorObject* self)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1058 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1059 PyObject *dummy;
30848
931a58f27ebb * Use weakref's of DBCursor objects for the iterator cursors to avoid a
Gregory P. Smith <greg@mad-scientist.com>
parents: 30837
diff changeset
1060
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1061 if (self->dbc != NULL) {
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1062 dummy=DBC_close_internal(self);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1063 /*
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1064 ** Raising exceptions while doing
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1065 ** garbage collection is a fatal error.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1066 */
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1067 if (dummy)
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1068 Py_DECREF(dummy);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1069 else
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1070 PyErr_Clear();
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1071 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1072 if (self->in_weakreflist != NULL) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1073 PyObject_ClearWeakRefs((PyObject *) self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1074 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1075 Py_DECREF(self->mydb);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1076 PyObject_Del(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1077 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1078
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1079
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1080 static DBEnvObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1081 newDBEnvObject(int flags)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1082 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1083 int err;
32564
cf138c55d41b Cleanup support for older pythons (perhaps it should be removed?)
Neal Norwitz <nnorwitz@gmail.com>
parents: 32431
diff changeset
1084 DBEnvObject* self = PyObject_New(DBEnvObject, &DBEnv_Type);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1085 if (self == NULL)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1086 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1087
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1088 self->db_env = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1089 self->closed = 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1090 self->flags = flags;
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
1091 self->moduleFlags.getReturnsNone = DEFAULT_GET_RETURNS_NONE;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
1092 self->moduleFlags.cursorSetReturnsNone = DEFAULT_CURSOR_SET_RETURNS_NONE;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1093 self->children_dbs = NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1094 self->children_txns = NULL;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1095 Py_INCREF(Py_None);
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1096 self->private_obj = Py_None;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1097 Py_INCREF(Py_None);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1098 self->rep_transport = Py_None;
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1099 self->in_weakreflist = NULL;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1100 self->event_notifyCallback = NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1101
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1102 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1103 err = db_env_create(&self->db_env, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1104 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1105 if (makeDBError(err)) {
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1106 Py_DECREF(self);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1107 self = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1108 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1109 else {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1110 self->db_env->set_errcall(self->db_env, _db_errorCallback);
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1111 self->db_env->app_private = self;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1112 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1113 return self;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1114 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1115
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1116 /* Forward declaration */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1117 static PyObject *DBEnv_close_internal(DBEnvObject* self, int flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1118
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1119 static void
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1120 DBEnv_dealloc(DBEnvObject* self)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1121 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1122 PyObject *dummy;
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1123
48982
b9ed14eb9e87 Fix some leaks - Neal Norwitz
Jesus Cea <jcea@jcea.es>
parents: 48910
diff changeset
1124 if (self->db_env) {
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1125 dummy=DBEnv_close_internal(self, 0);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1126 /*
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1127 ** Raising exceptions while doing
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1128 ** garbage collection is a fatal error.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1129 */
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1130 if (dummy)
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1131 Py_DECREF(dummy);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1132 else
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1133 PyErr_Clear();
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1134 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1135
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1136 Py_XDECREF(self->event_notifyCallback);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1137 self->event_notifyCallback = NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1138
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1139 if (self->in_weakreflist != NULL) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1140 PyObject_ClearWeakRefs((PyObject *) self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1141 }
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1142 Py_DECREF(self->private_obj);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1143 Py_DECREF(self->rep_transport);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1144 PyObject_Del(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1145 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1146
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1147
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1148 static DBTxnObject*
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1149 newDBTxnObject(DBEnvObject* myenv, DBTxnObject *parent, DB_TXN *txn, int flags)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1150 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1151 int err;
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1152 DB_TXN *parent_txn = NULL;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1153
32564
cf138c55d41b Cleanup support for older pythons (perhaps it should be removed?)
Neal Norwitz <nnorwitz@gmail.com>
parents: 32431
diff changeset
1154 DBTxnObject* self = PyObject_New(DBTxnObject, &DBTxn_Type);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1155 if (self == NULL)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1156 return NULL;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1157
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1158 self->in_weakreflist = NULL;
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1159 self->children_txns = NULL;
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1160 self->children_dbs = NULL;
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1161 self->children_cursors = NULL;
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1162 self->children_sequences = NULL;
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1163 self->flag_prepare = 0;
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1164 self->parent_txn = NULL;
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1165 self->env = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1166
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1167 if (parent && ((PyObject *)parent!=Py_None)) {
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1168 parent_txn = parent->txn;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1169 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1170
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1171 if (txn) {
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1172 self->txn = txn;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1173 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1174 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1175 err = myenv->db_env->txn_begin(myenv->db_env, parent_txn, &(self->txn), flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1176 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1177
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1178 if (makeDBError(err)) {
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1179 Py_DECREF(self);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1180 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1181 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1182 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1183
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1184 /* Can't use 'parent' because could be 'parent==Py_None' */
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1185 if (parent_txn) {
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1186 self->parent_txn = parent;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1187 Py_INCREF(parent);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1188 self->env = NULL;
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1189 INSERT_IN_DOUBLE_LINKED_LIST(parent->children_txns, self);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1190 } else {
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1191 self->parent_txn = NULL;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1192 Py_INCREF(myenv);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1193 self->env = myenv;
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1194 INSERT_IN_DOUBLE_LINKED_LIST(myenv->children_txns, self);
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1195 }
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1196
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1197 return self;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1198 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1199
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1200 /* Forward declaration */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1201 static PyObject *
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1202 DBTxn_abort_discard_internal(DBTxnObject* self, int discard);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1203
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1204 static void
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1205 DBTxn_dealloc(DBTxnObject* self)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1206 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1207 PyObject *dummy;
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
1208
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1209 if (self->txn) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1210 int flag_prepare = self->flag_prepare;
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1211
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1212 dummy=DBTxn_abort_discard_internal(self,0);
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1213 /*
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1214 ** Raising exceptions while doing
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1215 ** garbage collection is a fatal error.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1216 */
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1217 if (dummy)
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1218 Py_DECREF(dummy);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1219 else
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1220 PyErr_Clear();
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1221
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1222 if (!flag_prepare) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1223 PyErr_Warn(PyExc_RuntimeWarning,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1224 "DBTxn aborted in destructor. No prior commit() or abort().");
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1225 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1226 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1227
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1228 if (self->in_weakreflist != NULL) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1229 PyObject_ClearWeakRefs((PyObject *) self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1230 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1231
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1232 if (self->env) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1233 Py_DECREF(self->env);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1234 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1235 Py_DECREF(self->parent_txn);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1236 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1237 PyObject_Del(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1238 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1239
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1240
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1241 static DBLockObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1242 newDBLockObject(DBEnvObject* myenv, u_int32_t locker, DBT* obj,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1243 db_lockmode_t lock_mode, int flags)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1244 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1245 int err;
32564
cf138c55d41b Cleanup support for older pythons (perhaps it should be removed?)
Neal Norwitz <nnorwitz@gmail.com>
parents: 32431
diff changeset
1246 DBLockObject* self = PyObject_New(DBLockObject, &DBLock_Type);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1247 if (self == NULL)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1248 return NULL;
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1249 self->in_weakreflist = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1250
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1251 MYDB_BEGIN_ALLOW_THREADS;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1252 err = myenv->db_env->lock_get(myenv->db_env, locker, flags, obj, lock_mode,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1253 &self->lock);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1254 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1255 if (makeDBError(err)) {
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1256 Py_DECREF(self);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1257 self = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1258 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1259
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1260 return self;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1261 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1262
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1263
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1264 static void
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1265 DBLock_dealloc(DBLockObject* self)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1266 {
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1267 if (self->in_weakreflist != NULL) {
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1268 PyObject_ClearWeakRefs((PyObject *) self);
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1269 }
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
1270 /* TODO: is this lock held? should we release it? */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1271
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1272 PyObject_Del(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1273 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1274
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1275
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1276 #if (DBVER >= 43)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1277 static DBSequenceObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1278 newDBSequenceObject(DBObject* mydb, int flags)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1279 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1280 int err;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1281 DBSequenceObject* self = PyObject_New(DBSequenceObject, &DBSequence_Type);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1282 if (self == NULL)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1283 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1284 Py_INCREF(mydb);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1285 self->mydb = mydb;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1286
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1287 INSERT_IN_DOUBLE_LINKED_LIST(self->mydb->children_sequences,self);
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1288 self->txn = NULL;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1289
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1290 self->in_weakreflist = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1291
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1292 MYDB_BEGIN_ALLOW_THREADS;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1293 err = db_sequence_create(&self->sequence, self->mydb->db, flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1294 MYDB_END_ALLOW_THREADS;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1295 if (makeDBError(err)) {
47117
1ca967566880 issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
Gregory P. Smith <greg@mad-scientist.com>
parents: 46981
diff changeset
1296 Py_DECREF(self);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1297 self = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1298 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1299
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1300 return self;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1301 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1302
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1303 /* Forward declaration */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1304 static PyObject
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1305 *DBSequence_close_internal(DBSequenceObject* self, int flags, int do_not_close);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1306
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1307 static void
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1308 DBSequence_dealloc(DBSequenceObject* self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1309 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1310 PyObject *dummy;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1311
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1312 if (self->sequence != NULL) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1313 dummy=DBSequence_close_internal(self,0,0);
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1314 /*
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1315 ** Raising exceptions while doing
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1316 ** garbage collection is a fatal error.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1317 */
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1318 if (dummy)
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1319 Py_DECREF(dummy);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1320 else
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1321 PyErr_Clear();
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1322 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1323
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1324 if (self->in_weakreflist != NULL) {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1325 PyObject_ClearWeakRefs((PyObject *) self);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1326 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1327
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1328 Py_DECREF(self->mydb);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1329 PyObject_Del(self);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1330 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1331 #endif
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
1332
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1333 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1334 /* DB methods */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1335
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1336 static PyObject*
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1337 DB_append(DBObject* self, PyObject* args, PyObject* kwargs)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1338 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1339 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1340 PyObject* dataobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1341 db_recno_t recno;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1342 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1343 DB_TXN *txn = NULL;
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1344 static char* kwnames[] = { "data", "txn", NULL };
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1345
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1346 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:append", kwnames,
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1347 &dataobj, &txnobj))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1348 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1349
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1350 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1351
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1352 /* make a dummy key out of a recno */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1353 recno = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1354 CLEAR_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1355 key.data = &recno;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1356 key.size = sizeof(recno);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1357 key.ulen = key.size;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1358 key.flags = DB_DBT_USERMEM;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1359
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1360 if (!make_dbt(dataobj, &data)) return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1361 if (!checkTxnObj(txnobj, &txn)) return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1362
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1363 if (-1 == _DB_put(self, txn, &key, &data, DB_APPEND))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1364 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1365
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1366 return NUMBER_FromLong(recno);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1367 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1368
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1369
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1370 static int
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1371 _db_associateCallback(DB* db, const DBT* priKey, const DBT* priData,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1372 DBT* secKey)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1373 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1374 int retval = DB_DONOTINDEX;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1375 DBObject* secondaryDB = (DBObject*)db->app_private;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1376 PyObject* callback = secondaryDB->associateCallback;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1377 int type = secondaryDB->primaryDBType;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1378 PyObject* args;
36874
9bb590a0b7fb Fix gcc 4.0.x warning about use of uninitialized value.
Thomas Wouters <thomas@python.org>
parents: 36873
diff changeset
1379 PyObject* result = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1380
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1381
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1382 if (callback != NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1383 MYDB_BEGIN_BLOCK_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1384
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
1385 if (type == DB_RECNO || type == DB_QUEUE)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1386 args = BuildValue_LS(*((db_recno_t*)priKey->data), priData->data, priData->size);
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
1387 else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1388 args = BuildValue_SS(priKey->data, priKey->size, priData->data, priData->size);
36873
78c9acbb463c Coverity found bug: test result of PyTuple_New() against NULL before use.
Thomas Wouters <thomas@python.org>
parents: 36746
diff changeset
1389 if (args != NULL) {
78c9acbb463c Coverity found bug: test result of PyTuple_New() against NULL before use.
Thomas Wouters <thomas@python.org>
parents: 36746
diff changeset
1390 result = PyEval_CallObject(callback, args);
78c9acbb463c Coverity found bug: test result of PyTuple_New() against NULL before use.
Thomas Wouters <thomas@python.org>
parents: 36746
diff changeset
1391 }
78c9acbb463c Coverity found bug: test result of PyTuple_New() against NULL before use.
Thomas Wouters <thomas@python.org>
parents: 36746
diff changeset
1392 if (args == NULL || result == NULL) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1393 PyErr_Print();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1394 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1395 else if (result == Py_None) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1396 retval = DB_DONOTINDEX;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1397 }
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1398 else if (NUMBER_Check(result)) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1399 retval = NUMBER_AsLong(result);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1400 }
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
1401 else if (PyBytes_Check(result)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1402 char* data;
36501
7fdc639bc5b4 Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents: 36427
diff changeset
1403 Py_ssize_t size;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1404
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1405 CLEAR_DBT(*secKey);
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
1406 PyBytes_AsStringAndSize(result, &data, &size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1407 secKey->flags = DB_DBT_APPMALLOC; /* DB will free */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1408 secKey->data = malloc(size); /* TODO, check this */
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1409 if (secKey->data) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1410 memcpy(secKey->data, data, size);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1411 secKey->size = size;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1412 retval = 0;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1413 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1414 else {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1415 PyErr_SetString(PyExc_MemoryError,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1416 "malloc failed in _db_associateCallback");
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1417 PyErr_Print();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1418 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1419 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1420 else {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1421 PyErr_SetString(
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1422 PyExc_TypeError,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1423 "DB associate callback should return DB_DONOTINDEX or string.");
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1424 PyErr_Print();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1425 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1426
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
1427 Py_XDECREF(args);
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
1428 Py_XDECREF(result);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1429
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1430 MYDB_END_BLOCK_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1431 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1432 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1433 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1434
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1435
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1436 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1437 DB_associate(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1438 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1439 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1440 DBObject* secondaryDB;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1441 PyObject* callback;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1442 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1443 PyObject *txnobj = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1444 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1445 static char* kwnames[] = {"secondaryDB", "callback", "flags", "txn",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
1446 NULL};
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1447 #else
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1448 static char* kwnames[] = {"secondaryDB", "callback", "flags", NULL};
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1449 #endif
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1450
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1451 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1452 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|iO:associate", kwnames,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1453 &secondaryDB, &callback, &flags,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1454 &txnobj)) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1455 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1456 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|i:associate", kwnames,
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1457 &secondaryDB, &callback, &flags)) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1458 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1459 return NULL;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1460 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1461
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1462 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1463 if (!checkTxnObj(txnobj, &txn)) return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1464 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1465
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1466 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1467 if (!DBObject_Check(secondaryDB)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1468 makeTypeError("DB", (PyObject*)secondaryDB);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1469 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1470 }
35028
e03714804845 additional sanity check. secondaryDB cannot be closed.
Gregory P. Smith <greg@mad-scientist.com>
parents: 35026
diff changeset
1471 CHECK_DB_NOT_CLOSED(secondaryDB);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1472 if (callback == Py_None) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1473 callback = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1474 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1475 else if (!PyCallable_Check(callback)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1476 makeTypeError("Callable", callback);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1477 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1478 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1479
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1480 /* Save a reference to the callback in the secondary DB. */
35026
215b7885e108 fixes pybsddb SF bug id 1215432. DB.associate() would crash when a
Gregory P. Smith <greg@mad-scientist.com>
parents: 35015
diff changeset
1481 Py_XDECREF(secondaryDB->associateCallback);
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
1482 Py_XINCREF(callback);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1483 secondaryDB->associateCallback = callback;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1484 secondaryDB->primaryDBType = _DB_get_type(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1485
26367
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1486 /* PyEval_InitThreads is called here due to a quirk in python 1.5
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1487 * - 2.2.1 (at least) according to Russell Williamson <merel@wt.net>:
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1488 * The global interepreter lock is not initialized until the first
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1489 * thread is created using thread.start_new_thread() or fork() is
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1490 * called. that would cause the ALLOW_THREADS here to segfault due
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1491 * to a null pointer reference if no threads or child processes
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1492 * have been created. This works around that and is a no-op if
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1493 * threads have already been initialized.
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1494 * (see pybsddb-users mailing list post on 2002-08-07)
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1495 */
27274
d2ae5affde14 bugfix: allow the module to work with python compiled without thread support.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27273
diff changeset
1496 #ifdef WITH_THREAD
26367
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
1497 PyEval_InitThreads();
27274
d2ae5affde14 bugfix: allow the module to work with python compiled without thread support.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27273
diff changeset
1498 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1499 MYDB_BEGIN_ALLOW_THREADS;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1500 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1501 err = self->db->associate(self->db,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1502 txn,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1503 secondaryDB->db,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1504 _db_associateCallback,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1505 flags);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1506 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1507 err = self->db->associate(self->db,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1508 secondaryDB->db,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1509 _db_associateCallback,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1510 flags);
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1511 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1512 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1513
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1514 if (err) {
35026
215b7885e108 fixes pybsddb SF bug id 1215432. DB.associate() would crash when a
Gregory P. Smith <greg@mad-scientist.com>
parents: 35015
diff changeset
1515 Py_XDECREF(secondaryDB->associateCallback);
215b7885e108 fixes pybsddb SF bug id 1215432. DB.associate() would crash when a
Gregory P. Smith <greg@mad-scientist.com>
parents: 35015
diff changeset
1516 secondaryDB->associateCallback = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1517 secondaryDB->primaryDBType = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1518 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1519
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1520 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1521 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1522 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1523
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1524
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1525 static PyObject*
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1526 DB_close_internal(DBObject* self, int flags, int do_not_close)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1527 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1528 PyObject *dummy;
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1529 int err = 0;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1530
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1531 if (self->db != NULL) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1532 /* Can be NULL if db is not in an environment */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1533 EXTRACT_FROM_DOUBLE_LINKED_LIST_MAYBE_NULL(self);
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
1534
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1535 if (self->txn) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1536 EXTRACT_FROM_DOUBLE_LINKED_LIST_TXN(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1537 self->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1538 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1539
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1540 while(self->children_cursors) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1541 dummy=DBC_close_internal(self->children_cursors);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1542 Py_XDECREF(dummy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1543 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1544
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1545 #if (DBVER >= 43)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1546 while(self->children_sequences) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1547 dummy=DBSequence_close_internal(self->children_sequences,0,0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1548 Py_XDECREF(dummy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1549 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1550 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1551
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1552 /*
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1553 ** "do_not_close" is used to dispose all related objects in the
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1554 ** tree, without actually releasing the "root" object.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1555 ** This is done, for example, because function calls like
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1556 ** "DB.verify()" implicitly close the underlying handle. So
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1557 ** the handle doesn't need to be closed, but related objects
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1558 ** must be cleaned up.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1559 */
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1560 if (!do_not_close) {
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1561 MYDB_BEGIN_ALLOW_THREADS;
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1562 err = self->db->close(self->db, flags);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1563 MYDB_END_ALLOW_THREADS;
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1564 self->db = NULL;
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1565 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1566 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1567 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1568 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1569 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1570
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1571 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1572 DB_close(DBObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1573 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1574 int flags=0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1575 if (!PyArg_ParseTuple(args,"|i:close", &flags))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1576 return NULL;
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
1577 return DB_close_internal(self, flags, 0);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1578 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1579
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1580
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1581 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1582 _DB_consume(DBObject* self, PyObject* args, PyObject* kwargs, int consume_flag)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1583 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1584 int err, flags=0, type;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1585 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1586 PyObject* retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1587 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1588 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1589 static char* kwnames[] = { "txn", "flags", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1590
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1591 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:consume", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1592 &txnobj, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1593 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1594
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1595 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1596 type = _DB_get_type(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1597 if (type == -1)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1598 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1599 if (type != DB_QUEUE) {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1600 PyErr_SetString(PyExc_TypeError,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1601 "Consume methods only allowed for Queue DB's");
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1602 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1603 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1604 if (!checkTxnObj(txnobj, &txn))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1605 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1606
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1607 CLEAR_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1608 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1609 if (CHECK_DBFLAG(self, DB_THREAD)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1610 /* Tell Berkeley DB to malloc the return value (thread safe) */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1611 data.flags = DB_DBT_MALLOC;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1612 key.flags = DB_DBT_MALLOC;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1613 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1614
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1615 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1616 err = self->db->get(self->db, txn, &key, &data, flags|consume_flag);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1617 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1618
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1619 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1620 && self->moduleFlags.getReturnsNone) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1621 err = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1622 Py_INCREF(Py_None);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1623 retval = Py_None;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1624 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1625 else if (!err) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1626 retval = BuildValue_SS(key.data, key.size, data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1627 FREE_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1628 FREE_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1629 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1630
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1631 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1632 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1633 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1634
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1635 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1636 DB_consume(DBObject* self, PyObject* args, PyObject* kwargs, int consume_flag)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1637 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1638 return _DB_consume(self, args, kwargs, DB_CONSUME);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1639 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1640
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1641 static PyObject*
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1642 DB_consume_wait(DBObject* self, PyObject* args, PyObject* kwargs,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1643 int consume_flag)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1644 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1645 return _DB_consume(self, args, kwargs, DB_CONSUME_WAIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1646 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1647
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1648
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1649 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1650 DB_cursor(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1651 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1652 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1653 DBC* dbc;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1654 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1655 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1656 static char* kwnames[] = { "txn", "flags", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1657
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1658 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:cursor", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1659 &txnobj, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1660 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1661 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1662 if (!checkTxnObj(txnobj, &txn))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1663 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1664
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1665 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1666 err = self->db->cursor(self->db, txn, &dbc, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1667 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1668 RETURN_IF_ERR();
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1669 return (PyObject*) newDBCursorObject(dbc, (DBTxnObject *)txnobj, self);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1670 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1671
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1672
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1673 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1674 DB_delete(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1675 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1676 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1677 int flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1678 PyObject* keyobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1679 DBT key;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1680 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1681 static char* kwnames[] = { "key", "txn", "flags", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1682
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1683 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|Oi:delete", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1684 &keyobj, &txnobj, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1685 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1686 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1687 if (!make_key_dbt(self, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1688 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1689 if (!checkTxnObj(txnobj, &txn)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1690 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1691 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1692 }
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1693
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1694 if (-1 == _DB_delete(self, txn, &key, 0)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1695 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1696 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1697 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1698
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1699 FREE_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1700 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1701 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1702
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1703
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1704 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1705 DB_fd(DBObject* self)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1706 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1707 int err, the_fd;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1708
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1709 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1710
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1711 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1712 err = self->db->fd(self->db, &the_fd);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1713 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1714 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1715 return NUMBER_FromLong(the_fd);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1716 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1717
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1718
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1719 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1720 DB_get(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1721 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1722 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1723 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1724 PyObject* keyobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1725 PyObject* dfltobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1726 PyObject* retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1727 int dlen = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1728 int doff = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1729 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1730 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1731 static char* kwnames[] = {"key", "default", "txn", "flags", "dlen",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
1732 "doff", NULL};
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1733
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1734 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OOiii:get", kwnames,
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1735 &keyobj, &dfltobj, &txnobj, &flags, &dlen,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
1736 &doff))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1737 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1738
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1739 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1740 if (!make_key_dbt(self, keyobj, &key, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1741 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1742 if (!checkTxnObj(txnobj, &txn)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1743 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1744 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1745 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1746
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1747 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1748 if (CHECK_DBFLAG(self, DB_THREAD)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1749 /* Tell Berkeley DB to malloc the return value (thread safe) */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1750 data.flags = DB_DBT_MALLOC;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1751 }
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1752 if (!add_partial_dbt(&data, dlen, doff)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1753 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1754 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1755 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1756
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1757 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1758 err = self->db->get(self->db, txn, &key, &data, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1759 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1760
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1761 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY) && (dfltobj != NULL)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1762 err = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1763 Py_INCREF(dfltobj);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1764 retval = dfltobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1765 }
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1766 else if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1767 && self->moduleFlags.getReturnsNone) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1768 err = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1769 Py_INCREF(Py_None);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1770 retval = Py_None;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1771 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1772 else if (!err) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1773 if (flags & DB_SET_RECNO) /* return both key and data */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1774 retval = BuildValue_SS(key.data, key.size, data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1775 else /* return just the data */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1776 retval = Build_PyString(data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1777 FREE_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1778 }
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1779 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1780
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1781 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1782 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1783 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1784
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1785 static PyObject*
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1786 DB_pget(DBObject* self, PyObject* args, PyObject* kwargs)
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1787 {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1788 int err, flags=0;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1789 PyObject* txnobj = NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1790 PyObject* keyobj;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1791 PyObject* dfltobj = NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1792 PyObject* retval = NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1793 int dlen = -1;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1794 int doff = -1;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1795 DBT key, pkey, data;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1796 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1797 static char* kwnames[] = {"key", "default", "txn", "flags", "dlen",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
1798 "doff", NULL};
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1799
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1800 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OOiii:pget", kwnames,
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1801 &keyobj, &dfltobj, &txnobj, &flags, &dlen,
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1802 &doff))
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1803 return NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1804
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1805 CHECK_DB_NOT_CLOSED(self);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1806 if (!make_key_dbt(self, keyobj, &key, &flags))
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1807 return NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1808 if (!checkTxnObj(txnobj, &txn)) {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1809 FREE_DBT(key);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1810 return NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1811 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1812
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1813 CLEAR_DBT(data);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1814 if (CHECK_DBFLAG(self, DB_THREAD)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1815 /* Tell Berkeley DB to malloc the return value (thread safe) */
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1816 data.flags = DB_DBT_MALLOC;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1817 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1818 if (!add_partial_dbt(&data, dlen, doff)) {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1819 FREE_DBT(key);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1820 return NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1821 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1822
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1823 CLEAR_DBT(pkey);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1824 pkey.flags = DB_DBT_MALLOC;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1825
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1826 MYDB_BEGIN_ALLOW_THREADS;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1827 err = self->db->pget(self->db, txn, &key, &pkey, &data, flags);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1828 MYDB_END_ALLOW_THREADS;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1829
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1830 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY) && (dfltobj != NULL)) {
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1831 err = 0;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1832 Py_INCREF(dfltobj);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1833 retval = dfltobj;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1834 }
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1835 else if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1836 && self->moduleFlags.getReturnsNone) {
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1837 err = 0;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1838 Py_INCREF(Py_None);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1839 retval = Py_None;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1840 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1841 else if (!err) {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1842 PyObject *pkeyObj;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1843 PyObject *dataObj;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1844 dataObj = Build_PyString(data.data, data.size);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1845
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1846 if (self->primaryDBType == DB_RECNO ||
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1847 self->primaryDBType == DB_QUEUE)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1848 pkeyObj = NUMBER_FromLong(*(int *)pkey.data);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1849 else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1850 pkeyObj = Build_PyString(pkey.data, pkey.size);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1851
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1852 if (flags & DB_SET_RECNO) /* return key , pkey and data */
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1853 {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1854 PyObject *keyObj;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1855 int type = _DB_get_type(self);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1856 if (type == DB_RECNO || type == DB_QUEUE)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1857 keyObj = NUMBER_FromLong(*(int *)key.data);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1858 else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1859 keyObj = Build_PyString(key.data, key.size);
36427
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
1860 #if (PY_VERSION_HEX >= 0x02040000)
36400
055fcdc652dd commits sourceforge patch #1407992 by neil.norwitz.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36396
diff changeset
1861 retval = PyTuple_Pack(3, keyObj, pkeyObj, dataObj);
36427
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
1862 #else
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
1863 retval = Py_BuildValue("OOO", keyObj, pkeyObj, dataObj);
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
1864 #endif
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
1865 Py_DECREF(keyObj);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1866 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1867 else /* return just the pkey and data */
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1868 {
36427
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
1869 #if (PY_VERSION_HEX >= 0x02040000)
36400
055fcdc652dd commits sourceforge patch #1407992 by neil.norwitz.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36396
diff changeset
1870 retval = PyTuple_Pack(2, pkeyObj, dataObj);
36427
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
1871 #else
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
1872 retval = Py_BuildValue("OO", pkeyObj, dataObj);
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
1873 #endif
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1874 }
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
1875 Py_DECREF(dataObj);
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
1876 Py_DECREF(pkeyObj);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1877 FREE_DBT(pkey);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1878 FREE_DBT(data);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1879 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1880 FREE_DBT(key);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1881
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1882 RETURN_IF_ERR();
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1883 return retval;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1884 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
1885
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1886
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1887 /* Return size of entry */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1888 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1889 DB_get_size(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1890 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1891 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1892 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1893 PyObject* keyobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1894 PyObject* retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1895 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1896 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1897 static char* kwnames[] = { "key", "txn", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1898
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1899 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:get_size", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1900 &keyobj, &txnobj))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1901 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1902 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1903 if (!make_key_dbt(self, keyobj, &key, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1904 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1905 if (!checkTxnObj(txnobj, &txn)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1906 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1907 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1908 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1909 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1910
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
1911 /* We don't allocate any memory, forcing a DB_BUFFER_SMALL error and
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
1912 thus getting the record size. */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1913 data.flags = DB_DBT_USERMEM;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1914 data.ulen = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1915 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1916 err = self->db->get(self->db, txn, &key, &data, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1917 MYDB_END_ALLOW_THREADS;
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
1918 if (err == DB_BUFFER_SMALL) {
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1919 retval = NUMBER_FromLong((long)data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1920 err = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1921 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1922
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1923 FREE_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1924 FREE_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1925 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1926 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1927 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1928
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1929
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1930 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1931 DB_get_both(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1932 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1933 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1934 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1935 PyObject* keyobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1936 PyObject* dataobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1937 PyObject* retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1938 DBT key, data;
41937
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1939 void *orig_data;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1940 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
1941 static char* kwnames[] = { "key", "data", "txn", "flags", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1942
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1943 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|Oi:get_both", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1944 &keyobj, &dataobj, &txnobj, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1945 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1946
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1947 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1948 if (!make_key_dbt(self, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1949 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1950 if ( !make_dbt(dataobj, &data) ||
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1951 !checkTxnObj(txnobj, &txn) )
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1952 {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1953 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1954 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
1955 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1956
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1957 flags |= DB_GET_BOTH;
41937
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1958 orig_data = data.data;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1959
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1960 if (CHECK_DBFLAG(self, DB_THREAD)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1961 /* Tell Berkeley DB to malloc the return value (thread safe) */
41937
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1962 /* XXX(nnorwitz): At least 4.4.20 and 4.5.20 require this flag. */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1963 data.flags = DB_DBT_MALLOC;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1964 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1965
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1966 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1967 err = self->db->get(self->db, txn, &key, &data, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1968 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1969
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1970 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
1971 && self->moduleFlags.getReturnsNone) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1972 err = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1973 Py_INCREF(Py_None);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1974 retval = Py_None;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1975 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1976 else if (!err) {
41937
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1977 /* XXX(nnorwitz): can we do: retval = dataobj; Py_INCREF(retval); */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
1978 retval = Build_PyString(data.data, data.size);
41937
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1979
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1980 /* Even though the flags require DB_DBT_MALLOC, data is not always
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1981 allocated. 4.4: allocated, 4.5: *not* allocated. :-( */
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1982 if (data.data != orig_data)
e31d2f95f225 Backout the original 'fix' to 1721309 which had no effect.
Neal Norwitz <nnorwitz@gmail.com>
parents: 41778
diff changeset
1983 FREE_DBT(data);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1984 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1985
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1986 FREE_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1987 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1988 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1989 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1990
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1991
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1992 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1993 DB_get_byteswapped(DBObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
1994 {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1995 int err = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1996 int retval = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1997
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1998 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
1999
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2000 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2001 err = self->db->get_byteswapped(self->db, &retval);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2002 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2003 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2004 return NUMBER_FromLong(retval);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2005 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2006
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2007
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2008 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2009 DB_get_type(DBObject* self)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2010 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2011 int type;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2012
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2013 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2014
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2015 type = _DB_get_type(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2016 if (type == -1)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2017 return NULL;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2018 return NUMBER_FromLong(type);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2019 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2020
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2021
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2022 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2023 DB_join(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2024 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2025 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2026 int length, x;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2027 PyObject* cursorsObj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2028 DBC** cursors;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2029 DBC* dbc;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2030
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2031 if (!PyArg_ParseTuple(args,"O|i:join", &cursorsObj, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2032 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2033
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2034 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2035
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2036 if (!PySequence_Check(cursorsObj)) {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2037 PyErr_SetString(PyExc_TypeError,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2038 "Sequence of DBCursor objects expected");
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2039 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2040 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2041
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2042 length = PyObject_Length(cursorsObj);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2043 cursors = malloc((length+1) * sizeof(DBC*));
39471
531b364bbc0e Handle malloc and fopen failures more gracefully.
Neal Norwitz <nnorwitz@gmail.com>
parents: 39234
diff changeset
2044 if (!cursors) {
531b364bbc0e Handle malloc and fopen failures more gracefully.
Neal Norwitz <nnorwitz@gmail.com>
parents: 39234
diff changeset
2045 PyErr_NoMemory();
531b364bbc0e Handle malloc and fopen failures more gracefully.
Neal Norwitz <nnorwitz@gmail.com>
parents: 39234
diff changeset
2046 return NULL;
531b364bbc0e Handle malloc and fopen failures more gracefully.
Neal Norwitz <nnorwitz@gmail.com>
parents: 39234
diff changeset
2047 }
531b364bbc0e Handle malloc and fopen failures more gracefully.
Neal Norwitz <nnorwitz@gmail.com>
parents: 39234
diff changeset
2048
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2049 cursors[length] = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2050 for (x=0; x<length; x++) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2051 PyObject* item = PySequence_GetItem(cursorsObj, x);
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2052 if (item == NULL) {
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2053 free(cursors);
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2054 return NULL;
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2055 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2056 if (!DBCursorObject_Check(item)) {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2057 PyErr_SetString(PyExc_TypeError,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2058 "Sequence of DBCursor objects expected");
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2059 free(cursors);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2060 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2061 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2062 cursors[x] = ((DBCursorObject*)item)->dbc;
36943
f06125a9d406 Fix another leak in bsddb, and avoid use of uninitialized value -- funny how
Thomas Wouters <thomas@python.org>
parents: 36888
diff changeset
2063 Py_DECREF(item);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2064 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2065
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2066 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2067 err = self->db->join(self->db, cursors, &dbc, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2068 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2069 free(cursors);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2070 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2071
30850
ed058bdad2ad * SF patch 835100 - C++ // comments are not allowed. Use /* */
Gregory P. Smith <greg@mad-scientist.com>
parents: 30848
diff changeset
2072 /* FIXME: this is a buggy interface. The returned cursor
ed058bdad2ad * SF patch 835100 - C++ // comments are not allowed. Use /* */
Gregory P. Smith <greg@mad-scientist.com>
parents: 30848
diff changeset
2073 contains internal references to the passed in cursors
ed058bdad2ad * SF patch 835100 - C++ // comments are not allowed. Use /* */
Gregory P. Smith <greg@mad-scientist.com>
parents: 30848
diff changeset
2074 but does not hold python references to them or prevent
ed058bdad2ad * SF patch 835100 - C++ // comments are not allowed. Use /* */
Gregory P. Smith <greg@mad-scientist.com>
parents: 30848
diff changeset
2075 them from being closed prematurely. This can cause
ed058bdad2ad * SF patch 835100 - C++ // comments are not allowed. Use /* */
Gregory P. Smith <greg@mad-scientist.com>
parents: 30848
diff changeset
2076 python to crash when things are done in the wrong order. */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2077 return (PyObject*) newDBCursorObject(dbc, NULL, self);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2078 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2079
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2080
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2081 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2082 DB_key_range(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2083 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2084 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2085 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2086 PyObject* keyobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2087 DBT key;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2088 DB_TXN *txn = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2089 DB_KEY_RANGE range;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2090 static char* kwnames[] = { "key", "txn", "flags", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2091
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2092 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|Oi:key_range", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2093 &keyobj, &txnobj, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2094 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2095 CHECK_DB_NOT_CLOSED(self);
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2096 if (!make_dbt(keyobj, &key))
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2097 /* BTree only, don't need to allow for an int key */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2098 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2099 if (!checkTxnObj(txnobj, &txn))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2100 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2101
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2102 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2103 err = self->db->key_range(self->db, txn, &key, &range, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2104 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2105
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2106 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2107 return Py_BuildValue("ddd", range.less, range.equal, range.greater);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2108 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2109
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2110
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2111 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2112 DB_open(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2113 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2114 int err, type = DB_UNKNOWN, flags=0, mode=0660;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2115 char* filename = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2116 char* dbname = NULL;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2117 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2118 PyObject *txnobj = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2119 DB_TXN *txn = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2120 /* with dbname */
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2121 static char* kwnames[] = {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2122 "filename", "dbname", "dbtype", "flags", "mode", "txn", NULL};
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2123 /* without dbname */
36722
c40a33ca65b9 Another bit of unconstification.
Tim Peters <tim.peters@gmail.com>
parents: 36684
diff changeset
2124 static char* kwnames_basic[] = {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2125 "filename", "dbtype", "flags", "mode", "txn", NULL};
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2126 #else
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2127 /* with dbname */
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2128 static char* kwnames[] = {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2129 "filename", "dbname", "dbtype", "flags", "mode", NULL};
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2130 /* without dbname */
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2131 static char* kwnames_basic[] = {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2132 "filename", "dbtype", "flags", "mode", NULL};
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2133 #endif
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2134
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2135 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2136 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "z|ziiiO:open", kwnames,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2137 &filename, &dbname, &type, &flags, &mode,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2138 &txnobj))
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2139 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2140 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "z|ziii:open", kwnames,
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2141 &filename, &dbname, &type, &flags,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2142 &mode))
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2143 #endif
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2144 {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2145 PyErr_Clear();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2146 type = DB_UNKNOWN; flags = 0; mode = 0660;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2147 filename = NULL; dbname = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2148 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2149 if (!PyArg_ParseTupleAndKeywords(args, kwargs,"z|iiiO:open",
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2150 kwnames_basic,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2151 &filename, &type, &flags, &mode,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2152 &txnobj))
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2153 return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2154 #else
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2155 if (!PyArg_ParseTupleAndKeywords(args, kwargs,"z|iii:open",
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2156 kwnames_basic,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2157 &filename, &type, &flags, &mode))
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2158 return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2159 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2160 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2161
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2162 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2163 if (!checkTxnObj(txnobj, &txn)) return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2164 #endif
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2165
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2166 if (NULL == self->db) {
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2167 PyObject *t = Py_BuildValue("(is)", 0,
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2168 "Cannot call open() twice for DB object");
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2169 if (t) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2170 PyErr_SetObject(DBError, t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2171 Py_DECREF(t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2172 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2173 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2174 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2175
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2176 #if (DBVER >= 41)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2177 if (txn) { /* Can't use 'txnobj' because could be 'txnobj==Py_None' */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2178 INSERT_IN_DOUBLE_LINKED_LIST_TXN(((DBTxnObject *)txnobj)->children_dbs,self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2179 self->txn=(DBTxnObject *)txnobj;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2180 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2181 self->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2182 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2183 #else
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2184 self->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2185 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2186
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2187 MYDB_BEGIN_ALLOW_THREADS;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2188 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2189 err = self->db->open(self->db, txn, filename, dbname, type, flags, mode);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2190 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2191 err = self->db->open(self->db, filename, dbname, type, flags, mode);
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2192 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2193 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2194 if (makeDBError(err)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2195 PyObject *dummy;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2196
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2197 dummy=DB_close_internal(self, 0, 0);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2198 Py_XDECREF(dummy);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2199 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2200 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2201
43768
37423c76e208 * db->get_types is only available in BerkeleyDB >= 4.2
Gregory P. Smith <greg@mad-scientist.com>
parents: 43767
diff changeset
2202 #if (DBVER >= 42)
43766
51a0de9bab37 Fixes bug 477182 on pybsddb.sf.net. DB objects now load the flags and
Gregory P. Smith <greg@mad-scientist.com>
parents: 43742
diff changeset
2203 self->db->get_flags(self->db, &self->setflags);
43768
37423c76e208 * db->get_types is only available in BerkeleyDB >= 4.2
Gregory P. Smith <greg@mad-scientist.com>
parents: 43767
diff changeset
2204 #endif
43766
51a0de9bab37 Fixes bug 477182 on pybsddb.sf.net. DB objects now load the flags and
Gregory P. Smith <greg@mad-scientist.com>
parents: 43742
diff changeset
2205
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2206 self->flags = flags;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2207
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2208 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2209 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2210
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2211
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2212 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2213 DB_put(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2214 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2215 int flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2216 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2217 int dlen = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2218 int doff = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2219 PyObject* keyobj, *dataobj, *retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2220 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2221 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2222 static char* kwnames[] = { "key", "data", "txn", "flags", "dlen",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
2223 "doff", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2224
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2225 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|Oiii:put", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2226 &keyobj, &dataobj, &txnobj, &flags, &dlen, &doff))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2227 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2228
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2229 CHECK_DB_NOT_CLOSED(self);
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2230 if (!make_key_dbt(self, keyobj, &key, NULL))
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2231 return NULL;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2232 if ( !make_dbt(dataobj, &data) ||
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2233 !add_partial_dbt(&data, dlen, doff) ||
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2234 !checkTxnObj(txnobj, &txn) )
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2235 {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2236 FREE_DBT(key);
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2237 return NULL;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
2238 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2239
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2240 if (-1 == _DB_put(self, txn, &key, &data, flags)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2241 FREE_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2242 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2243 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2244
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2245 if (flags & DB_APPEND)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2246 retval = NUMBER_FromLong(*((db_recno_t*)key.data));
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2247 else {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2248 retval = Py_None;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2249 Py_INCREF(retval);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2250 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2251 FREE_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2252 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2253 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2254
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2255
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2256
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2257 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2258 DB_remove(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2259 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2260 char* filename;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2261 char* database = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2262 int err, flags=0;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2263 static char* kwnames[] = { "filename", "dbname", "flags", NULL};
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2264
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2265 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|zi:remove", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2266 &filename, &database, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2267 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2268 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2269
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2270 EXTRACT_FROM_DOUBLE_LINKED_LIST_MAYBE_NULL(self);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2271
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2272 MYDB_BEGIN_ALLOW_THREADS;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2273 err = self->db->remove(self->db, filename, database, flags);
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2274 MYDB_END_ALLOW_THREADS;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2275
29118
d7ac1a640d8f DB.remove() needs to set the internal DB handle to NULL after being called.
Gregory P. Smith <greg@mad-scientist.com>
parents: 28769
diff changeset
2276 self->db = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2277 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2278 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2279 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2281
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2282
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2283 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2284 DB_rename(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2285 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2286 char* filename;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2287 char* database;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2288 char* newname;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2289 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2290
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2291 if (!PyArg_ParseTuple(args, "sss|i:rename", &filename, &database, &newname,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2292 &flags))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2293 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2294 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2295
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2296 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2297 err = self->db->rename(self->db, filename, database, newname, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2298 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2299 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2300 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2301 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2302
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2303
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2304 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2305 DB_get_private(DBObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2306 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2307 /* We can give out the private field even if db is closed */
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2308 Py_INCREF(self->private_obj);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2309 return self->private_obj;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2310 }
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2311
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2312 static PyObject*
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2313 DB_set_private(DBObject* self, PyObject* private_obj)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2314 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2315 /* We can set the private field even if db is closed */
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2316 Py_DECREF(self->private_obj);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2317 Py_INCREF(private_obj);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
2318 self->private_obj = private_obj;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2319 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2320 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2321
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2322
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2323 static PyObject*
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2324 DB_set_bt_minkey(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2325 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2326 int err, minkey;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2327
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2328 if (!PyArg_ParseTuple(args,"i:set_bt_minkey", &minkey ))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2329 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2330 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2331
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2332 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2333 err = self->db->set_bt_minkey(self->db, minkey);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2334 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2335 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2336 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2337 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2338
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2339 static int
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2340 _default_cmp(const DBT *leftKey,
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2341 const DBT *rightKey)
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2342 {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2343 int res;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2344 int lsize = leftKey->size, rsize = rightKey->size;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2345
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2346 res = memcmp(leftKey->data, rightKey->data,
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2347 lsize < rsize ? lsize : rsize);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2348
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2349 if (res == 0) {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2350 if (lsize < rsize) {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2351 res = -1;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2352 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2353 else if (lsize > rsize) {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2354 res = 1;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2355 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2356 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2357 return res;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2358 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2359
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2360 static int
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2361 _db_compareCallback(DB* db,
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2362 const DBT *leftKey,
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2363 const DBT *rightKey)
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2364 {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2365 int res = 0;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2366 PyObject *args;
36943
f06125a9d406 Fix another leak in bsddb, and avoid use of uninitialized value -- funny how
Thomas Wouters <thomas@python.org>
parents: 36888
diff changeset
2367 PyObject *result = NULL;
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2368 DBObject *self = (DBObject *)db->app_private;
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2369
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2370 if (self == NULL || self->btCompareCallback == NULL) {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2371 MYDB_BEGIN_BLOCK_THREADS;
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2372 PyErr_SetString(PyExc_TypeError,
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2373 (self == 0
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2374 ? "DB_bt_compare db is NULL."
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2375 : "DB_bt_compare callback is NULL."));
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2376 /* we're in a callback within the DB code, we can't raise */
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2377 PyErr_Print();
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2378 res = _default_cmp(leftKey, rightKey);
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2379 MYDB_END_BLOCK_THREADS;
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2380 } else {
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2381 MYDB_BEGIN_BLOCK_THREADS;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2382
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2383 args = BuildValue_SS(leftKey->data, leftKey->size, rightKey->data, rightKey->size);
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2384 if (args != NULL) {
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2385 /* XXX(twouters) I highly doubt this INCREF is correct */
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2386 Py_INCREF(self);
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2387 result = PyEval_CallObject(self->btCompareCallback, args);
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2388 }
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2389 if (args == NULL || result == NULL) {
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2390 /* we're in a callback within the DB code, we can't raise */
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2391 PyErr_Print();
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2392 res = _default_cmp(leftKey, rightKey);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2393 } else if (NUMBER_Check(result)) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2394 res = NUMBER_AsLong(result);
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2395 } else {
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2396 PyErr_SetString(PyExc_TypeError,
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2397 "DB_bt_compare callback MUST return an int.");
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2398 /* we're in a callback within the DB code, we can't raise */
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2399 PyErr_Print();
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2400 res = _default_cmp(leftKey, rightKey);
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2401 }
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2402
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2403 Py_XDECREF(args);
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2404 Py_XDECREF(result);
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2405
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2406 MYDB_END_BLOCK_THREADS;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2407 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2408 return res;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2409 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2410
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2411 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2412 DB_set_bt_compare(DBObject* self, PyObject* comparator)
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2413 {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2414 int err;
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2415 PyObject *tuple, *result;
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2416
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2417 CHECK_DB_NOT_CLOSED(self);
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2418
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2419 if (!PyCallable_Check(comparator)) {
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2420 makeTypeError("Callable", comparator);
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2421 return NULL;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2422 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2423
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2424 /*
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2425 * Perform a test call of the comparator function with two empty
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2426 * string objects here. verify that it returns an int (0).
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2427 * err if not.
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2428 */
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2429 tuple = Py_BuildValue("(ss)", "", "");
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2430 result = PyEval_CallObject(comparator, tuple);
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2431 Py_DECREF(tuple);
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2432 if (result == NULL)
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2433 return NULL;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2434 if (!NUMBER_Check(result)) {
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2435 PyErr_SetString(PyExc_TypeError,
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2436 "callback MUST return an int");
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2437 return NULL;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2438 } else if (NUMBER_AsLong(result) != 0) {
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2439 PyErr_SetString(PyExc_TypeError,
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2440 "callback failed to return 0 on two empty strings");
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2441 return NULL;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2442 }
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2443 Py_DECREF(result);
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2444
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2445 /* We don't accept multiple set_bt_compare operations, in order to
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2446 * simplify the code. This would have no real use, as one cannot
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2447 * change the function once the db is opened anyway */
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2448 if (self->btCompareCallback != NULL) {
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2449 PyErr_SetString(PyExc_RuntimeError, "set_bt_compare() cannot be called more than once");
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2450 return NULL;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2451 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2452
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2453 Py_INCREF(comparator);
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2454 self->btCompareCallback = comparator;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2455
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2456 /* This is to workaround a problem with un-initialized threads (see
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2457 comment in DB_associate) */
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2458 #ifdef WITH_THREAD
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2459 PyEval_InitThreads();
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2460 #endif
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2461
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2462 err = self->db->set_bt_compare(self->db, _db_compareCallback);
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2463
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2464 if (err) {
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2465 /* restore the old state in case of error */
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2466 Py_DECREF(comparator);
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2467 self->btCompareCallback = NULL;
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2468 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2469
36876
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2470 RETURN_IF_ERR();
ca4bbcbbd0d5 Add additional missing checks for return vals of PyTuple_New().
Georg Brandl <georg@python.org>
parents: 36874
diff changeset
2471 RETURN_NONE();
34999
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2472 }
fcd2c3847869 pybsddb 4.3.1, adds support for DB.set_bt_compare database btree comparison
Gregory P. Smith <greg@mad-scientist.com>
parents: 34170
diff changeset
2473
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2474
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2475 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2476 DB_set_cachesize(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2477 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2478 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2479 int gbytes = 0, bytes = 0, ncache = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2480
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2481 if (!PyArg_ParseTuple(args,"ii|i:set_cachesize",
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2482 &gbytes,&bytes,&ncache))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2483 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2484 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2485
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2486 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2487 err = self->db->set_cachesize(self->db, gbytes, bytes, ncache);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2488 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2489 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2490 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2491 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2492
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2493
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2494 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2495 DB_set_flags(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2496 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2497 int err, flags;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2498
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2499 if (!PyArg_ParseTuple(args,"i:set_flags", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2500 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2501 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2502
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2503 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2504 err = self->db->set_flags(self->db, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2505 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2506 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2507
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2508 self->setflags |= flags;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2509 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2510 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2511
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2512
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2513 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2514 DB_set_h_ffactor(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2515 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2516 int err, ffactor;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2517
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2518 if (!PyArg_ParseTuple(args,"i:set_h_ffactor", &ffactor))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2519 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2520 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2521
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2522 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2523 err = self->db->set_h_ffactor(self->db, ffactor);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2524 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2525 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2526 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2527 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2528
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2529
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2530 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2531 DB_set_h_nelem(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2532 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2533 int err, nelem;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2534
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2535 if (!PyArg_ParseTuple(args,"i:set_h_nelem", &nelem))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2536 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2537 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2538
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2539 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2540 err = self->db->set_h_nelem(self->db, nelem);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2541 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2542 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2543 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2544 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2545
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2546
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2547 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2548 DB_set_lorder(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2549 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2550 int err, lorder;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2551
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2552 if (!PyArg_ParseTuple(args,"i:set_lorder", &lorder))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2553 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2554 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2555
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2556 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2557 err = self->db->set_lorder(self->db, lorder);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2558 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2559 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2560 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2561 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2562
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2563
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2564 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2565 DB_set_pagesize(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2566 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2567 int err, pagesize;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2568
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2569 if (!PyArg_ParseTuple(args,"i:set_pagesize", &pagesize))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2570 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2571 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2572
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2573 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2574 err = self->db->set_pagesize(self->db, pagesize);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2575 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2576 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2577 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2578 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2579
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2580
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2581 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2582 DB_set_re_delim(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2583 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2584 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2585 char delim;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2586
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2587 if (!PyArg_ParseTuple(args,"b:set_re_delim", &delim)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2588 PyErr_Clear();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2589 if (!PyArg_ParseTuple(args,"c:set_re_delim", &delim))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2590 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2591 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2592
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2593 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2594
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2595 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2596 err = self->db->set_re_delim(self->db, delim);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2597 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2598 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2599 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2600 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2601
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2602 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2603 DB_set_re_len(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2604 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2605 int err, len;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2606
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2607 if (!PyArg_ParseTuple(args,"i:set_re_len", &len))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2608 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2609 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2610
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2611 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2612 err = self->db->set_re_len(self->db, len);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2613 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2614 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2615 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2616 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2617
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2618
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2619 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2620 DB_set_re_pad(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2621 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2622 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2623 char pad;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2624
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2625 if (!PyArg_ParseTuple(args,"b:set_re_pad", &pad)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2626 PyErr_Clear();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2627 if (!PyArg_ParseTuple(args,"c:set_re_pad", &pad))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2628 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2629 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2630 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2631
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2632 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2633 err = self->db->set_re_pad(self->db, pad);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2634 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2635 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2636 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2637 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2638
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2639
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2640 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2641 DB_set_re_source(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2642 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2643 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2644 char *re_source;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2645
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2646 if (!PyArg_ParseTuple(args,"s:set_re_source", &re_source))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2647 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2648 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2649
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2650 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2651 err = self->db->set_re_source(self->db, re_source);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2652 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2653 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2654 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2655 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2656
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2657
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2658 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2659 DB_set_q_extentsize(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2660 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2661 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2662 int extentsize;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2663
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2664 if (!PyArg_ParseTuple(args,"i:set_q_extentsize", &extentsize))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2665 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2666 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2667
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2668 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2669 err = self->db->set_q_extentsize(self->db, extentsize);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2670 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2671 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2672 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2673 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2674
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2675 static PyObject*
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2676 DB_stat(DBObject* self, PyObject* args, PyObject* kwargs)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2677 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2678 int err, flags = 0, type;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2679 void* sp;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2680 PyObject* d;
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2681 #if (DBVER >= 43)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2682 PyObject* txnobj = NULL;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2683 DB_TXN *txn = NULL;
39861
71b80240ac3d Fixes a bug with bsddb.DB.stat where the flags and txn keyword
Gregory P. Smith <greg@mad-scientist.com>
parents: 39471
diff changeset
2684 static char* kwnames[] = { "flags", "txn", NULL };
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2685 #else
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2686 static char* kwnames[] = { "flags", NULL };
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2687 #endif
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2688
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2689 #if (DBVER >= 43)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2690 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|iO:stat", kwnames,
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2691 &flags, &txnobj))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2692 return NULL;
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2693 if (!checkTxnObj(txnobj, &txn))
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2694 return NULL;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2695 #else
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2696 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|i:stat", kwnames, &flags))
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2697 return NULL;
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2698 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2699 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2700
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2701 MYDB_BEGIN_ALLOW_THREADS;
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2702 #if (DBVER >= 43)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2703 err = self->db->stat(self->db, txn, &sp, flags);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2704 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2705 err = self->db->stat(self->db, &sp, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2706 #endif
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2707 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2708 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2709
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2710 self->haveStat = 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2711
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2712 /* Turn the stat structure into a dictionary */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2713 type = _DB_get_type(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2714 if ((type == -1) || ((d = PyDict_New()) == NULL)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2715 free(sp);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2716 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2717 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2718
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2719 #define MAKE_HASH_ENTRY(name) _addIntToDict(d, #name, ((DB_HASH_STAT*)sp)->hash_##name)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2720 #define MAKE_BT_ENTRY(name) _addIntToDict(d, #name, ((DB_BTREE_STAT*)sp)->bt_##name)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2721 #define MAKE_QUEUE_ENTRY(name) _addIntToDict(d, #name, ((DB_QUEUE_STAT*)sp)->qs_##name)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2722
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2723 switch (type) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2724 case DB_HASH:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2725 MAKE_HASH_ENTRY(magic);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2726 MAKE_HASH_ENTRY(version);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2727 MAKE_HASH_ENTRY(nkeys);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2728 MAKE_HASH_ENTRY(ndata);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2729 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2730 MAKE_HASH_ENTRY(pagecnt);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2731 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2732 MAKE_HASH_ENTRY(pagesize);
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2733 #if (DBVER < 41)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2734 MAKE_HASH_ENTRY(nelem);
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2735 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2736 MAKE_HASH_ENTRY(ffactor);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2737 MAKE_HASH_ENTRY(buckets);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2738 MAKE_HASH_ENTRY(free);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2739 MAKE_HASH_ENTRY(bfree);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2740 MAKE_HASH_ENTRY(bigpages);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2741 MAKE_HASH_ENTRY(big_bfree);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2742 MAKE_HASH_ENTRY(overflows);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2743 MAKE_HASH_ENTRY(ovfl_free);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2744 MAKE_HASH_ENTRY(dup);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2745 MAKE_HASH_ENTRY(dup_free);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2746 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2747
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2748 case DB_BTREE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2749 case DB_RECNO:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2750 MAKE_BT_ENTRY(magic);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2751 MAKE_BT_ENTRY(version);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2752 MAKE_BT_ENTRY(nkeys);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2753 MAKE_BT_ENTRY(ndata);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2754 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2755 MAKE_BT_ENTRY(pagecnt);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2756 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2757 MAKE_BT_ENTRY(pagesize);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2758 MAKE_BT_ENTRY(minkey);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2759 MAKE_BT_ENTRY(re_len);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2760 MAKE_BT_ENTRY(re_pad);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2761 MAKE_BT_ENTRY(levels);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2762 MAKE_BT_ENTRY(int_pg);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2763 MAKE_BT_ENTRY(leaf_pg);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2764 MAKE_BT_ENTRY(dup_pg);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2765 MAKE_BT_ENTRY(over_pg);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2766 #if (DBVER >= 43)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2767 MAKE_BT_ENTRY(empty_pg);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2768 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2769 MAKE_BT_ENTRY(free);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2770 MAKE_BT_ENTRY(int_pgfree);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2771 MAKE_BT_ENTRY(leaf_pgfree);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2772 MAKE_BT_ENTRY(dup_pgfree);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2773 MAKE_BT_ENTRY(over_pgfree);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2774 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2775
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2776 case DB_QUEUE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2777 MAKE_QUEUE_ENTRY(magic);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2778 MAKE_QUEUE_ENTRY(version);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2779 MAKE_QUEUE_ENTRY(nkeys);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2780 MAKE_QUEUE_ENTRY(ndata);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2781 MAKE_QUEUE_ENTRY(pagesize);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2782 #if (DBVER >= 41)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2783 MAKE_QUEUE_ENTRY(extentsize);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2784 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2785 MAKE_QUEUE_ENTRY(pages);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2786 MAKE_QUEUE_ENTRY(re_len);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2787 MAKE_QUEUE_ENTRY(re_pad);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2788 MAKE_QUEUE_ENTRY(pgfree);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2789 #if (DBVER == 31)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2790 MAKE_QUEUE_ENTRY(start);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2791 #endif
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2792 MAKE_QUEUE_ENTRY(first_recno);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2793 MAKE_QUEUE_ENTRY(cur_recno);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2794 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2795
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2796 default:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2797 PyErr_SetString(PyExc_TypeError, "Unknown DB type, unable to stat");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2798 Py_DECREF(d);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2799 d = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2800 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2801
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2802 #undef MAKE_HASH_ENTRY
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2803 #undef MAKE_BT_ENTRY
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2804 #undef MAKE_QUEUE_ENTRY
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2805
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2806 free(sp);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2807 return d;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2808 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2809
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2810 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2811 DB_sync(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2812 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2813 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2814 int flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2815
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2816 if (!PyArg_ParseTuple(args,"|i:sync", &flags ))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2817 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2818 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2819
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2820 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2821 err = self->db->sync(self->db, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2822 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2823 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2824 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2825 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2826
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2827
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2828 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2829 DB_truncate(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2830 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2831 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2832 u_int32_t count=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2833 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2834 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2835 static char* kwnames[] = { "txn", "flags", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2836
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2837 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:cursor", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2838 &txnobj, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2839 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2840 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2841 if (!checkTxnObj(txnobj, &txn))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2842 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2843
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2844 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2845 err = self->db->truncate(self->db, txn, &count, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2846 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2847 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2848 return NUMBER_FromLong(count);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2849 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2850
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2851
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2852 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2853 DB_upgrade(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2854 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2855 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2856 char *filename;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2857
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2858 if (!PyArg_ParseTuple(args,"s|i:upgrade", &filename, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2859 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2860 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2861
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2862 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2863 err = self->db->upgrade(self->db, filename, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2864 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2865 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2866 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2867 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2868
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2869
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2870 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2871 DB_verify(DBObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2872 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2873 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2874 char* fileName;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2875 char* dbName=NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2876 char* outFileName=NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2877 FILE* outFile=NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2878 static char* kwnames[] = { "filename", "dbname", "outfile", "flags",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
2879 NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2880
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2881 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|zzi:verify", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2882 &fileName, &dbName, &outFileName, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2883 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2884
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2885 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2886 if (outFileName)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2887 outFile = fopen(outFileName, "w");
39471
531b364bbc0e Handle malloc and fopen failures more gracefully.
Neal Norwitz <nnorwitz@gmail.com>
parents: 39234
diff changeset
2888 /* XXX(nnorwitz): it should probably be an exception if outFile
531b364bbc0e Handle malloc and fopen failures more gracefully.
Neal Norwitz <nnorwitz@gmail.com>
parents: 39234
diff changeset
2889 can't be opened. */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2890
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2891 { /* DB.verify acts as a DB handle destructor (like close) */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2892 PyObject *error;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2893
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2894 error=DB_close_internal(self, 0, 1);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2895 if (error ) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2896 return error;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2897 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2898 }
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
2899
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2900 MYDB_BEGIN_ALLOW_THREADS;
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2901 err = self->db->verify(self->db, fileName, dbName, outFile, flags);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2902 MYDB_END_ALLOW_THREADS;
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2903
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2904 self->db = NULL; /* Implicit close; related objects already released */
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2905
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2906 if (outFile)
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2907 fclose(outFile);
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
2908
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2909 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2910 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2911 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2912
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2913
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2914 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2915 DB_set_get_returns_none(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2916 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2917 int flags=0;
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
2918 int oldValue=0;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2919
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2920 if (!PyArg_ParseTuple(args,"i:set_get_returns_none", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2921 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2922 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2923
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
2924 if (self->moduleFlags.getReturnsNone)
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
2925 ++oldValue;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
2926 if (self->moduleFlags.cursorSetReturnsNone)
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
2927 ++oldValue;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
2928 self->moduleFlags.getReturnsNone = (flags >= 1);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
2929 self->moduleFlags.cursorSetReturnsNone = (flags >= 2);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2930 return NUMBER_FromLong(oldValue);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2931 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2932
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2933 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2934 static PyObject*
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2935 DB_set_encrypt(DBObject* self, PyObject* args, PyObject* kwargs)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2936 {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2937 int err;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2938 u_int32_t flags=0;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2939 char *passwd = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
2940 static char* kwnames[] = { "passwd", "flags", NULL };
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2941
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2942 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|i:set_encrypt", kwnames,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2943 &passwd, &flags)) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2944 return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2945 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2946
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2947 MYDB_BEGIN_ALLOW_THREADS;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2948 err = self->db->set_encrypt(self->db, passwd, flags);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2949 MYDB_END_ALLOW_THREADS;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2950
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2951 RETURN_IF_ERR();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2952 RETURN_NONE();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2953 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2954 #endif /* DBVER >= 41 */
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
2955
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2956
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2957 /*-------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2958 /* Mapping and Dictionary-like access routines */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2959
38773
d5771a389b8e Get rid of function pointer cast.
Martin v. Löwis <martin@v.loewis.de>
parents: 38758
diff changeset
2960 Py_ssize_t DB_length(PyObject* _self)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2961 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2962 int err;
38620
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2963 Py_ssize_t size = 0;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2964 int flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2965 void* sp;
38773
d5771a389b8e Get rid of function pointer cast.
Martin v. Löwis <martin@v.loewis.de>
parents: 38758
diff changeset
2966 DBObject* self = (DBObject*)_self;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2967
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2968 if (self->db == NULL) {
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
2969 PyObject *t = Py_BuildValue("(is)", 0, "DB object has been closed");
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2970 if (t) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2971 PyErr_SetObject(DBError, t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2972 Py_DECREF(t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2973 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2974 return -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2975 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2976
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2977 if (self->haveStat) { /* Has the stat function been called recently? If
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2978 so, we can use the cached value. */
38620
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2979 flags = DB_FAST_STAT;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2980 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2981
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2982 MYDB_BEGIN_ALLOW_THREADS;
38620
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2983 redo_stat_for_length:
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2984 #if (DBVER >= 43)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
2985 err = self->db->stat(self->db, /*txnid*/ NULL, &sp, flags);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
2986 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2987 err = self->db->stat(self->db, &sp, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
2988 #endif
38620
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2989
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2990 /* All the stat structures have matching fields upto the ndata field,
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2991 so we can use any of them for the type cast */
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2992 size = ((DB_BTREE_STAT*)sp)->bt_ndata;
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2993
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
2994 /* A size of 0 could mean that Berkeley DB no longer had the stat values cached.
38620
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2995 * redo a full stat to make sure.
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2996 * Fixes SF python bug 1493322, pybsddb bug 1184012
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2997 */
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2998 if (size == 0 && (flags & DB_FAST_STAT)) {
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
2999 flags = 0;
38864
b9d1440c2dd1 Fix memory leak reported by valgrind while running test_subprocess
Neal Norwitz <nnorwitz@gmail.com>
parents: 38773
diff changeset
3000 if (!err)
b9d1440c2dd1 Fix memory leak reported by valgrind while running test_subprocess
Neal Norwitz <nnorwitz@gmail.com>
parents: 38773
diff changeset
3001 free(sp);
38620
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
3002 goto redo_stat_for_length;
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
3003 }
a60adf0cb2fd - bsddb: the __len__ method of a DB object has been fixed to return correct
Gregory P. Smith <greg@mad-scientist.com>
parents: 38611
diff changeset
3004
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3005 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3006
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3007 if (err)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3008 return -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3009
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3010 self->haveStat = 1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3011
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3012 free(sp);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3013 return size;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3014 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3015
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3016
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3017 PyObject* DB_subscript(DBObject* self, PyObject* keyobj)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3018 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3019 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3020 PyObject* retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3021 DBT key;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3022 DBT data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3023
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3024 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3025 if (!make_key_dbt(self, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3026 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3027
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3028 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3029 if (CHECK_DBFLAG(self, DB_THREAD)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3030 /* Tell Berkeley DB to malloc the return value (thread safe) */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3031 data.flags = DB_DBT_MALLOC;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3032 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3033 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3034 err = self->db->get(self->db, NULL, &key, &data, 0);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3035 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3036 if (err == DB_NOTFOUND || err == DB_KEYEMPTY) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3037 PyErr_SetObject(PyExc_KeyError, keyobj);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3038 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3039 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3040 else if (makeDBError(err)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3041 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3042 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3043 else {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3044 retval = Build_PyString(data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3045 FREE_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3046 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3047
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3048 FREE_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3049 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3050 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3051
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3052
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3053 static int
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3054 DB_ass_sub(DBObject* self, PyObject* keyobj, PyObject* dataobj)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3055 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3056 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3057 int retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3058 int flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3059
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3060 if (self->db == NULL) {
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3061 PyObject *t = Py_BuildValue("(is)", 0, "DB object has been closed");
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3062 if (t) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3063 PyErr_SetObject(DBError, t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3064 Py_DECREF(t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3065 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3066 return -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3067 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3068
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3069 if (!make_key_dbt(self, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3070 return -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3071
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3072 if (dataobj != NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3073 if (!make_dbt(dataobj, &data))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3074 retval = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3075 else {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3076 if (self->setflags & (DB_DUP|DB_DUPSORT))
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3077 /* dictionaries shouldn't have duplicate keys */
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3078 flags = DB_NOOVERWRITE;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3079 retval = _DB_put(self, NULL, &key, &data, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3080
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3081 if ((retval == -1) && (self->setflags & (DB_DUP|DB_DUPSORT))) {
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3082 /* try deleting any old record that matches and then PUT it
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3083 * again... */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3084 _DB_delete(self, NULL, &key, 0);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3085 PyErr_Clear();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3086 retval = _DB_put(self, NULL, &key, &data, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3087 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3088 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3089 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3090 else {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3091 /* dataobj == NULL, so delete the key */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3092 retval = _DB_delete(self, NULL, &key, 0);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3093 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3094 FREE_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3095 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3096 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3097
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3098
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3099 static PyObject*
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
3100 DB_has_key(DBObject* self, PyObject* args, PyObject* kwargs)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3101 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3102 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3103 PyObject* keyobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3104 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3105 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3106 DB_TXN *txn = NULL;
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
3107 static char* kwnames[] = {"key","txn", NULL};
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
3108
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
3109 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:has_key", kwnames,
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
3110 &keyobj, &txnobj))
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
3111 return NULL;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
3112
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3113 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3114 if (!make_key_dbt(self, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3115 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3116 if (!checkTxnObj(txnobj, &txn)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3117 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3118 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3119 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3120
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
3121 /* This causes DB_BUFFER_SMALL to be returned when the db has the key because
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3122 it has a record but can't allocate a buffer for the data. This saves
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3123 having to deal with data we won't be using.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3124 */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3125 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3126 data.flags = DB_DBT_USERMEM;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3127
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3128 MYDB_BEGIN_ALLOW_THREADS;
31670
6bcca4791849 fixes SF bug 914019 - DB.has_key was not honoring its txn argument
Gregory P. Smith <greg@mad-scientist.com>
parents: 31587
diff changeset
3129 err = self->db->get(self->db, txn, &key, &data, 0);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3130 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3131 FREE_DBT(key);
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3132
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3133 if (err == DB_BUFFER_SMALL || err == 0) {
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3134 return NUMBER_FromLong(1);
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3135 } else if (err == DB_NOTFOUND || err == DB_KEYEMPTY) {
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3136 return NUMBER_FromLong(0);
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3137 }
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3138
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3139 makeDBError(err);
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3140 return NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3141 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3142
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3143
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3144 #define _KEYS_LIST 1
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3145 #define _VALUES_LIST 2
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3146 #define _ITEMS_LIST 3
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3147
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3148 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3149 _DB_make_list(DBObject* self, DB_TXN* txn, int type)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3150 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3151 int err, dbtype;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3152 DBT key;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3153 DBT data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3154 DBC *cursor;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3155 PyObject* list;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3156 PyObject* item = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3157
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3158 CHECK_DB_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3159 CLEAR_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3160 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3161
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3162 dbtype = _DB_get_type(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3163 if (dbtype == -1)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3164 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3165
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3166 list = PyList_New(0);
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3167 if (list == NULL)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3168 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3169
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3170 /* get a cursor */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3171 MYDB_BEGIN_ALLOW_THREADS;
33401
4745f847cfa1 SF bug 1017405: the keys() values() and items() DB methods were
Gregory P. Smith <greg@mad-scientist.com>
parents: 32565
diff changeset
3172 err = self->db->cursor(self->db, txn, &cursor, 0);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3173 MYDB_END_ALLOW_THREADS;
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3174 if (makeDBError(err)) {
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3175 Py_DECREF(list);
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3176 return NULL;
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3177 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3178
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3179 while (1) { /* use the cursor to traverse the DB, collecting items */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3180 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3181 err = _DBC_get(cursor, &key, &data, DB_NEXT);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3182 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3183
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3184 if (err) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3185 /* for any error, break out of the loop */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3186 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3187 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3188
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3189 switch (type) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3190 case _KEYS_LIST:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3191 switch(dbtype) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3192 case DB_BTREE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3193 case DB_HASH:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3194 default:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3195 item = Build_PyString(key.data, key.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3196 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3197 case DB_RECNO:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3198 case DB_QUEUE:
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3199 item = NUMBER_FromLong(*((db_recno_t*)key.data));
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3200 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3201 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3202 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3203
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3204 case _VALUES_LIST:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3205 item = Build_PyString(data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3206 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3207
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3208 case _ITEMS_LIST:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3209 switch(dbtype) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3210 case DB_BTREE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3211 case DB_HASH:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3212 default:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3213 item = BuildValue_SS(key.data, key.size, data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3214 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3215 case DB_RECNO:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3216 case DB_QUEUE:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3217 item = BuildValue_IS(*((db_recno_t*)key.data), data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3218 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3219 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3220 break;
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3221 default:
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3222 PyErr_Format(PyExc_ValueError, "Unknown key type 0x%x", type);
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3223 item = NULL;
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3224 break;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3225 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3226 if (item == NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3227 Py_DECREF(list);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3228 list = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3229 goto done;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3230 }
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3231 if (PyList_Append(list, item)) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3232 Py_DECREF(list);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3233 Py_DECREF(item);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3234 list = NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3235 goto done;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3236 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3237 Py_DECREF(item);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3238 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3239
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3240 /* DB_NOTFOUND || DB_KEYEMPTY is okay, it means we got to the end */
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3241 if (err != DB_NOTFOUND && err != DB_KEYEMPTY && makeDBError(err)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3242 Py_DECREF(list);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3243 list = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3244 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3245
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3246 done:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3247 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3248 _DBC_close(cursor);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3249 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3250 return list;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3251 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3252
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3253
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3254 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3255 DB_keys(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3256 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3257 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3258 DB_TXN *txn = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3259
38489
3fe3ccdf0155 Make use of METH_O and METH_NOARGS where possible.
Georg Brandl <georg@python.org>
parents: 37538
diff changeset
3260 if (!PyArg_UnpackTuple(args, "keys", 0, 1, &txnobj))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3261 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3262 if (!checkTxnObj(txnobj, &txn))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3263 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3264 return _DB_make_list(self, txn, _KEYS_LIST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3265 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3266
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3267
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3268 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3269 DB_items(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3270 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3271 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3272 DB_TXN *txn = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3273
38489
3fe3ccdf0155 Make use of METH_O and METH_NOARGS where possible.
Georg Brandl <georg@python.org>
parents: 37538
diff changeset
3274 if (!PyArg_UnpackTuple(args, "items", 0, 1, &txnobj))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3275 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3276 if (!checkTxnObj(txnobj, &txn))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3277 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3278 return _DB_make_list(self, txn, _ITEMS_LIST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3279 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3281
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3282 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3283 DB_values(DBObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3284 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3285 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3286 DB_TXN *txn = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3287
38489
3fe3ccdf0155 Make use of METH_O and METH_NOARGS where possible.
Georg Brandl <georg@python.org>
parents: 37538
diff changeset
3288 if (!PyArg_UnpackTuple(args, "values", 0, 1, &txnobj))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3289 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3290 if (!checkTxnObj(txnobj, &txn))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3291 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3292 return _DB_make_list(self, txn, _VALUES_LIST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3293 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3294
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3295 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3296 /* DBCursor methods */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3297
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3298
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3299 static PyObject*
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3300 DBC_close_internal(DBCursorObject* self)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3301 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3302 int err = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3303
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3304 if (self->dbc != NULL) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3305 EXTRACT_FROM_DOUBLE_LINKED_LIST(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3306 if (self->txn) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3307 EXTRACT_FROM_DOUBLE_LINKED_LIST_TXN(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3308 self->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3309 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3310
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3311 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3312 err = _DBC_close(self->dbc);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3313 MYDB_END_ALLOW_THREADS;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3314 self->dbc = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3315 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3316 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3317 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3318 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3319
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3320 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3321 DBC_close(DBCursorObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3322 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3323 return DBC_close_internal(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3324 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3325
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3326
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3327 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3328 DBC_count(DBCursorObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3329 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3330 int err = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3331 db_recno_t count;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3332 int flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3333
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3334 if (!PyArg_ParseTuple(args, "|i:count", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3335 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3336
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3337 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3338
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3339 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3340 err = _DBC_count(self->dbc, &count, flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3341 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3342 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3343
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3344 return NUMBER_FromLong(count);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3345 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3346
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3347
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3348 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3349 DBC_current(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3350 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3351 return _DBCursor_get(self,DB_CURRENT,args,kwargs,"|iii:current");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3352 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3353
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3354
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3355 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3356 DBC_delete(DBCursorObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3357 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3358 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3359
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3360 if (!PyArg_ParseTuple(args, "|i:delete", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3361 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3362
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3363 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3364
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3365 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3366 err = _DBC_del(self->dbc, flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3367 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3368 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3369
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3370 self->mydb->haveStat = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3371 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3372 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3373
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3374
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3375 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3376 DBC_dup(DBCursorObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3377 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3378 int err, flags =0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3379 DBC* dbc = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3380
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3381 if (!PyArg_ParseTuple(args, "|i:dup", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3382 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3383
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3384 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3385
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3386 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3387 err = _DBC_dup(self->dbc, &dbc, flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3388 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3389 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3390
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3391 return (PyObject*) newDBCursorObject(dbc, self->txn, self->mydb);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3392 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3393
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3394 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3395 DBC_first(DBCursorObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3396 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3397 return _DBCursor_get(self,DB_FIRST,args,kwargs,"|iii:first");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3398 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3399
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3400
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3401 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3402 DBC_get(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3403 {
26367
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
3404 int err, flags=0;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3405 PyObject* keyobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3406 PyObject* dataobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3407 PyObject* retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3408 int dlen = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3409 int doff = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3410 DBT key, data;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
3411 static char* kwnames[] = { "key","data", "flags", "dlen", "doff",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
3412 NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3413
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3414 CLEAR_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3415 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3416 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i|ii:get", &kwnames[2],
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3417 &flags, &dlen, &doff))
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3418 {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3419 PyErr_Clear();
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3420 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Oi|ii:get",
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
3421 &kwnames[1],
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3422 &keyobj, &flags, &dlen, &doff))
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3423 {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3424 PyErr_Clear();
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3425 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OOi|ii:get",
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3426 kwnames, &keyobj, &dataobj,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3427 &flags, &dlen, &doff))
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3428 {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3429 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3430 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3431 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3432 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3433
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3434 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3435
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3436 if (keyobj && !make_key_dbt(self->mydb, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3437 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3438 if ( (dataobj && !make_dbt(dataobj, &data)) ||
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3439 (!add_partial_dbt(&data, dlen, doff)) )
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3440 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3441 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3442 return NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3443 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3444
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3445 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3446 err = _DBC_get(self->dbc, &key, &data, flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3447 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3448
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3449 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3450 && self->mydb->moduleFlags.getReturnsNone) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3451 Py_INCREF(Py_None);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3452 retval = Py_None;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3453 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3454 else if (makeDBError(err)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3455 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3456 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3457 else {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3458 switch (_DB_get_type(self->mydb)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3459 case -1:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3460 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3461 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3462 case DB_BTREE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3463 case DB_HASH:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3464 default:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3465 retval = BuildValue_SS(key.data, key.size, data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3466 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3467 case DB_RECNO:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3468 case DB_QUEUE:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3469 retval = BuildValue_IS(*((db_recno_t*)key.data), data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3470 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3471 }
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3472 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3473 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3474 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3475 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3476
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3477 static PyObject*
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3478 DBC_pget(DBCursorObject* self, PyObject* args, PyObject *kwargs)
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3479 {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3480 int err, flags=0;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3481 PyObject* keyobj = NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3482 PyObject* dataobj = NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3483 PyObject* retval = NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3484 int dlen = -1;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3485 int doff = -1;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3486 DBT key, pkey, data;
38611
9639cb13b940 * fix DBCursor.pget() bug with keyword argument names when no data= is
Gregory P. Smith <greg@mad-scientist.com>
parents: 38607
diff changeset
3487 static char* kwnames_keyOnly[] = { "key", "flags", "dlen", "doff", NULL };
9639cb13b940 * fix DBCursor.pget() bug with keyword argument names when no data= is
Gregory P. Smith <greg@mad-scientist.com>
parents: 38607
diff changeset
3488 static char* kwnames[] = { "key", "data", "flags", "dlen", "doff", NULL };
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3489
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3490 CLEAR_DBT(key);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3491 CLEAR_DBT(data);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3492 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i|ii:pget", &kwnames[2],
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3493 &flags, &dlen, &doff))
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3494 {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3495 PyErr_Clear();
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3496 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Oi|ii:pget",
38611
9639cb13b940 * fix DBCursor.pget() bug with keyword argument names when no data= is
Gregory P. Smith <greg@mad-scientist.com>
parents: 38607
diff changeset
3497 kwnames_keyOnly,
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3498 &keyobj, &flags, &dlen, &doff))
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3499 {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3500 PyErr_Clear();
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3501 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OOi|ii:pget",
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3502 kwnames, &keyobj, &dataobj,
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3503 &flags, &dlen, &doff))
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3504 {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3505 return NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3506 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3507 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3508 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3509
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3510 CHECK_CURSOR_NOT_CLOSED(self);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3511
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3512 if (keyobj && !make_key_dbt(self->mydb, keyobj, &key, NULL))
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3513 return NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3514 if ( (dataobj && !make_dbt(dataobj, &data)) ||
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3515 (!add_partial_dbt(&data, dlen, doff)) ) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3516 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3517 return NULL;
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3518 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3519
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3520 CLEAR_DBT(pkey);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3521 pkey.flags = DB_DBT_MALLOC;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3522
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3523 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3524 err = _DBC_pget(self->dbc, &key, &pkey, &data, flags);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3525 MYDB_END_ALLOW_THREADS;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3526
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3527 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3528 && self->mydb->moduleFlags.getReturnsNone) {
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3529 Py_INCREF(Py_None);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3530 retval = Py_None;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3531 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3532 else if (makeDBError(err)) {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3533 retval = NULL;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3534 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3535 else {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3536 PyObject *pkeyObj;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3537 PyObject *dataObj;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3538 dataObj = Build_PyString(data.data, data.size);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3539
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3540 if (self->mydb->primaryDBType == DB_RECNO ||
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3541 self->mydb->primaryDBType == DB_QUEUE)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3542 pkeyObj = NUMBER_FromLong(*(int *)pkey.data);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3543 else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3544 pkeyObj = Build_PyString(pkey.data, pkey.size);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3545
36400
055fcdc652dd commits sourceforge patch #1407992 by neil.norwitz.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36396
diff changeset
3546 if (key.data && key.size) /* return key, pkey and data */
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3547 {
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3548 PyObject *keyObj;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3549 int type = _DB_get_type(self->mydb);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3550 if (type == DB_RECNO || type == DB_QUEUE)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3551 keyObj = NUMBER_FromLong(*(int *)key.data);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3552 else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3553 keyObj = Build_PyString(key.data, key.size);
36427
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
3554 #if (PY_VERSION_HEX >= 0x02040000)
36400
055fcdc652dd commits sourceforge patch #1407992 by neil.norwitz.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36396
diff changeset
3555 retval = PyTuple_Pack(3, keyObj, pkeyObj, dataObj);
36427
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
3556 #else
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
3557 retval = Py_BuildValue("OOO", keyObj, pkeyObj, dataObj);
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
3558 #endif
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3559 Py_DECREF(keyObj);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3560 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3561 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3562 else /* return just the pkey and data */
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3563 {
36427
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
3564 #if (PY_VERSION_HEX >= 0x02040000)
36400
055fcdc652dd commits sourceforge patch #1407992 by neil.norwitz.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36396
diff changeset
3565 retval = PyTuple_Pack(2, pkeyObj, dataObj);
36427
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
3566 #else
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
3567 retval = Py_BuildValue("OO", pkeyObj, dataObj);
280d6019cf42 maintain support for older python versions in this module so that it
Gregory P. Smith <greg@mad-scientist.com>
parents: 36416
diff changeset
3568 #endif
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3569 }
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3570 Py_DECREF(dataObj);
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
3571 Py_DECREF(pkeyObj);
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3572 FREE_DBT(pkey);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3573 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3574 /* the only time REALLOC should be set is if we used an integer
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3575 * key that make_key_dbt malloc'd for us. always free these. */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3576 if (key.flags & DB_DBT_REALLOC) { /* 'make_key_dbt' could do a 'malloc' */
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3577 FREE_DBT(key);
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3578 }
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3579 return retval;
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3580 }
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3581
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3582
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3583 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3584 DBC_get_recno(DBCursorObject* self)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3585 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3586 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3587 db_recno_t recno;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3588 DBT key;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3589 DBT data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3590
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3591 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3592
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3593 CLEAR_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3594 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3595
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3596 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3597 err = _DBC_get(self->dbc, &key, &data, DB_GET_RECNO);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3598 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3599 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3600
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3601 recno = *((db_recno_t*)data.data);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3602 return NUMBER_FromLong(recno);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3603 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3604
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3605
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3606 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3607 DBC_last(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3608 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3609 return _DBCursor_get(self,DB_LAST,args,kwargs,"|iii:last");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3610 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3611
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3612
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3613 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3614 DBC_next(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3615 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3616 return _DBCursor_get(self,DB_NEXT,args,kwargs,"|iii:next");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3617 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3618
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3619
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3620 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3621 DBC_prev(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3622 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3623 return _DBCursor_get(self,DB_PREV,args,kwargs,"|iii:prev");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3624 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3625
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3626
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3627 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3628 DBC_put(DBCursorObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3629 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3630 int err, flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3631 PyObject* keyobj, *dataobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3632 DBT key, data;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
3633 static char* kwnames[] = { "key", "data", "flags", "dlen", "doff",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
3634 NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3635 int dlen = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3636 int doff = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3637
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3638 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO|iii:put", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3639 &keyobj, &dataobj, &flags, &dlen, &doff))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3640 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3641
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3642 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3643
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3644 if (!make_key_dbt(self->mydb, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3645 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3646 if (!make_dbt(dataobj, &data) ||
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3647 !add_partial_dbt(&data, dlen, doff) )
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3648 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3649 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3650 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3651 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3652
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3653 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3654 err = _DBC_put(self->dbc, &key, &data, flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3655 MYDB_END_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3656 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3657 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3658 self->mydb->haveStat = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3659 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3660 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3661
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3662
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3663 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3664 DBC_set(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3665 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3666 int err, flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3667 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3668 PyObject* retval, *keyobj;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
3669 static char* kwnames[] = { "key", "flags", "dlen", "doff", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3670 int dlen = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3671 int doff = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3672
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3673 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|iii:set", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3674 &keyobj, &flags, &dlen, &doff))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3675 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3676
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3677 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3678
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3679 if (!make_key_dbt(self->mydb, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3680 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3681
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3682 CLEAR_DBT(data);
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3683 if (!add_partial_dbt(&data, dlen, doff)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3684 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3685 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3686 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3687
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3688 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3689 err = _DBC_get(self->dbc, &key, &data, flags|DB_SET);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3690 MYDB_END_ALLOW_THREADS;
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3691 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3692 && self->mydb->moduleFlags.cursorSetReturnsNone) {
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3693 Py_INCREF(Py_None);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3694 retval = Py_None;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3695 }
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3696 else if (makeDBError(err)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3697 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3698 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3699 else {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3700 switch (_DB_get_type(self->mydb)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3701 case -1:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3702 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3703 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3704 case DB_BTREE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3705 case DB_HASH:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3706 default:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3707 retval = BuildValue_SS(key.data, key.size, data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3708 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3709 case DB_RECNO:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3710 case DB_QUEUE:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3711 retval = BuildValue_IS(*((db_recno_t*)key.data), data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3712 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3713 }
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3714 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3715 }
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3716 /* the only time REALLOC should be set is if we used an integer
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3717 * key that make_key_dbt malloc'd for us. always free these. */
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3718 if (key.flags & DB_DBT_REALLOC) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3719 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3720 }
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3721
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3722 return retval;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3723 }
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3724
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3725
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3726 static PyObject*
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3727 DBC_set_range(DBCursorObject* self, PyObject* args, PyObject* kwargs)
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3728 {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3729 int err, flags = 0;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3730 DBT key, data;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3731 PyObject* retval, *keyobj;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
3732 static char* kwnames[] = { "key", "flags", "dlen", "doff", NULL };
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3733 int dlen = -1;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3734 int doff = -1;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3735
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3736 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|iii:set_range", kwnames,
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3737 &keyobj, &flags, &dlen, &doff))
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3738 return NULL;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3739
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3740 CHECK_CURSOR_NOT_CLOSED(self);
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3741
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3742 if (!make_key_dbt(self->mydb, keyobj, &key, NULL))
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3743 return NULL;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3744
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3745 CLEAR_DBT(data);
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3746 if (!add_partial_dbt(&data, dlen, doff)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3747 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3748 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3749 }
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3750 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3751 err = _DBC_get(self->dbc, &key, &data, flags|DB_SET_RANGE);
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3752 MYDB_END_ALLOW_THREADS;
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3753 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3754 && self->mydb->moduleFlags.cursorSetReturnsNone) {
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3755 Py_INCREF(Py_None);
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3756 retval = Py_None;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3757 }
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3758 else if (makeDBError(err)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3759 retval = NULL;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3760 }
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3761 else {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3762 switch (_DB_get_type(self->mydb)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3763 case -1:
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3764 retval = NULL;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3765 break;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3766 case DB_BTREE:
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3767 case DB_HASH:
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3768 default:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3769 retval = BuildValue_SS(key.data, key.size, data.data, data.size);
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3770 break;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3771 case DB_RECNO:
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3772 case DB_QUEUE:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3773 retval = BuildValue_IS(*((db_recno_t*)key.data), data.data, data.size);
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3774 break;
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3775 }
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3776 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3777 }
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3778 /* the only time REALLOC should be set is if we used an integer
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
3779 * key that make_key_dbt malloc'd for us. always free these. */
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3780 if (key.flags & DB_DBT_REALLOC) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3781 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3782 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3783
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3784 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3785 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3786
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3787 static PyObject*
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3788 _DBC_get_set_both(DBCursorObject* self, PyObject* keyobj, PyObject* dataobj,
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3789 int flags, unsigned int returnsNone)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3790 {
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3791 int err;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3792 DBT key, data;
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3793 PyObject* retval;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3794
30850
ed058bdad2ad * SF patch 835100 - C++ // comments are not allowed. Use /* */
Gregory P. Smith <greg@mad-scientist.com>
parents: 30848
diff changeset
3795 /* the caller did this: CHECK_CURSOR_NOT_CLOSED(self); */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3796 if (!make_key_dbt(self->mydb, keyobj, &key, NULL))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3797 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3798 if (!make_dbt(dataobj, &data)) {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3799 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3800 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3801 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3802
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3803 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3804 err = _DBC_get(self->dbc, &key, &data, flags|DB_GET_BOTH);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3805 MYDB_END_ALLOW_THREADS;
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3806 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY) && returnsNone) {
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3807 Py_INCREF(Py_None);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3808 retval = Py_None;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3809 }
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3810 else if (makeDBError(err)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3811 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3812 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3813 else {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3814 switch (_DB_get_type(self->mydb)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3815 case -1:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3816 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3817 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3818 case DB_BTREE:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3819 case DB_HASH:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3820 default:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3821 retval = BuildValue_SS(key.data, key.size, data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3822 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3823 case DB_RECNO:
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3824 case DB_QUEUE:
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3825 retval = BuildValue_IS(*((db_recno_t*)key.data), data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3826 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3827 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3828 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3829
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3830 FREE_DBT(key); /* 'make_key_dbt' could do a 'malloc' */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3831 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3832 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3833
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3834 static PyObject*
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3835 DBC_get_both(DBCursorObject* self, PyObject* args)
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3836 {
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3837 int flags=0;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3838 PyObject *keyobj, *dataobj;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3839
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3840 if (!PyArg_ParseTuple(args, "OO|i:get_both", &keyobj, &dataobj, &flags))
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3841 return NULL;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3842
30850
ed058bdad2ad * SF patch 835100 - C++ // comments are not allowed. Use /* */
Gregory P. Smith <greg@mad-scientist.com>
parents: 30848
diff changeset
3843 /* if the cursor is closed, self->mydb may be invalid */
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3844 CHECK_CURSOR_NOT_CLOSED(self);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3845
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3846 return _DBC_get_set_both(self, keyobj, dataobj, flags,
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3847 self->mydb->moduleFlags.getReturnsNone);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3848 }
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3849
30617
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3850 /* Return size of entry */
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3851 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3852 DBC_get_current_size(DBCursorObject* self)
30617
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3853 {
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3854 int err, flags=DB_CURRENT;
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3855 PyObject* retval = NULL;
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3856 DBT key, data;
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3857
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3858 CHECK_CURSOR_NOT_CLOSED(self);
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3859 CLEAR_DBT(key);
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3860 CLEAR_DBT(data);
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3861
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
3862 /* We don't allocate any memory, forcing a DB_BUFFER_SMALL error and thus
30617
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3863 getting the record size. */
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3864 data.flags = DB_DBT_USERMEM;
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3865 data.ulen = 0;
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3866 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3867 err = _DBC_get(self->dbc, &key, &data, flags);
30617
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3868 MYDB_END_ALLOW_THREADS;
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
3869 if (err == DB_BUFFER_SMALL || !err) {
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
3870 /* DB_BUFFER_SMALL means positive size, !err means zero length value */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
3871 retval = NUMBER_FromLong((long)data.size);
30617
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3872 err = 0;
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3873 }
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3874
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3875 RETURN_IF_ERR();
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3876 return retval;
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3877 }
d47cc6f71f32 bsddb3 4.2.2, adds DBCursor.get_current_size() method to return the length
Gregory P. Smith <greg@mad-scientist.com>
parents: 30482
diff changeset
3878
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3879 static PyObject*
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3880 DBC_set_both(DBCursorObject* self, PyObject* args)
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3881 {
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3882 int flags=0;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3883 PyObject *keyobj, *dataobj;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3884
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3885 if (!PyArg_ParseTuple(args, "OO|i:set_both", &keyobj, &dataobj, &flags))
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3886 return NULL;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3887
30850
ed058bdad2ad * SF patch 835100 - C++ // comments are not allowed. Use /* */
Gregory P. Smith <greg@mad-scientist.com>
parents: 30848
diff changeset
3888 /* if the cursor is closed, self->mydb may be invalid */
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3889 CHECK_CURSOR_NOT_CLOSED(self);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3890
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3891 return _DBC_get_set_both(self, keyobj, dataobj, flags,
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3892 self->mydb->moduleFlags.cursorSetReturnsNone);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3893 }
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3894
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3895
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3896 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3897 DBC_set_recno(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3898 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3899 int err, irecno, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3900 db_recno_t recno;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3901 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3902 PyObject* retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3903 int dlen = -1;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3904 int doff = -1;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
3905 static char* kwnames[] = { "recno","flags", "dlen", "doff", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3906
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3907 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i|iii:set_recno", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3908 &irecno, &flags, &dlen, &doff))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3909 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3910
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3911 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3912
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3913 CLEAR_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3914 recno = (db_recno_t) irecno;
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3915 /* use allocated space so DB will be able to realloc room for the real
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
3916 * key */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3917 key.data = malloc(sizeof(db_recno_t));
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3918 if (key.data == NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3919 PyErr_SetString(PyExc_MemoryError, "Key memory allocation failed");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3920 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3921 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3922 key.size = sizeof(db_recno_t);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3923 key.ulen = key.size;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3924 memcpy(key.data, &recno, sizeof(db_recno_t));
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3925 key.flags = DB_DBT_REALLOC;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3926
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3927 CLEAR_DBT(data);
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3928 if (!add_partial_dbt(&data, dlen, doff)) {
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3929 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3930 return NULL;
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3931 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3932
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3933 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3934 err = _DBC_get(self->dbc, &key, &data, flags|DB_SET_RECNO);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3935 MYDB_END_ALLOW_THREADS;
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3936 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3937 && self->mydb->moduleFlags.cursorSetReturnsNone) {
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3938 Py_INCREF(Py_None);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3939 retval = Py_None;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3940 }
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3941 else if (makeDBError(err)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3942 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3943 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3944 else { /* Can only be used for BTrees, so no need to return int key */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3945 retval = BuildValue_SS(key.data, key.size, data.data, data.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3946 }
32426
f8d61ed2f0d3 SF patch / bug #967763
Gregory P. Smith <greg@mad-scientist.com>
parents: 31799
diff changeset
3947 FREE_DBT(key);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3948
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3949 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3950 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3951
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3952
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3953 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3954 DBC_consume(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3955 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3956 return _DBCursor_get(self,DB_CONSUME,args,kwargs,"|iii:consume");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3957 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3958
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3959
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3960 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3961 DBC_next_dup(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3962 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3963 return _DBCursor_get(self,DB_NEXT_DUP,args,kwargs,"|iii:next_dup");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3964 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3965
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3966
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3967 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3968 DBC_next_nodup(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3969 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3970 return _DBCursor_get(self,DB_NEXT_NODUP,args,kwargs,"|iii:next_nodup");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3971 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3972
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3973
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3974 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3975 DBC_prev_nodup(DBCursorObject* self, PyObject* args, PyObject *kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3976 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3977 return _DBCursor_get(self,DB_PREV_NODUP,args,kwargs,"|iii:prev_nodup");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3978 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3979
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3980
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3981 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3982 DBC_join_item(DBCursorObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3983 {
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3984 int err, flags=0;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3985 DBT key, data;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3986 PyObject* retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3987
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
3988 if (!PyArg_ParseTuple(args, "|i:join_item", &flags))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3989 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3990
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3991 CHECK_CURSOR_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3992
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3993 CLEAR_DBT(key);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3994 CLEAR_DBT(data);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3995
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3996 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
3997 err = _DBC_get(self->dbc, &key, &data, flags | DB_JOIN_ITEM);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
3998 MYDB_END_ALLOW_THREADS;
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
3999 if ((err == DB_NOTFOUND || err == DB_KEYEMPTY)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4000 && self->mydb->moduleFlags.getReturnsNone) {
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
4001 Py_INCREF(Py_None);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
4002 retval = Py_None;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
4003 }
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
4004 else if (makeDBError(err)) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4005 retval = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4006 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4007 else {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4008 retval = BuildValue_S(key.data, key.size);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4009 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4010
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4011 return retval;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4012 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4013
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4014
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4015
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4016 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4017 /* DBEnv methods */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4018
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4019
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4020 static PyObject*
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4021 DBEnv_close_internal(DBEnvObject* self, int flags)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4022 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4023 PyObject *dummy;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4024 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4025
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4026 if (!self->closed) { /* Don't close more than once */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4027 while(self->children_txns) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4028 dummy=DBTxn_abort_discard_internal(self->children_txns,0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4029 Py_XDECREF(dummy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4030 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4031 while(self->children_dbs) {
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
4032 dummy=DB_close_internal(self->children_dbs, 0, 0);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4033 Py_XDECREF(dummy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4034 }
48982
b9ed14eb9e87 Fix some leaks - Neal Norwitz
Jesus Cea <jcea@jcea.es>
parents: 48910
diff changeset
4035 }
b9ed14eb9e87 Fix some leaks - Neal Norwitz
Jesus Cea <jcea@jcea.es>
parents: 48910
diff changeset
4036
b9ed14eb9e87 Fix some leaks - Neal Norwitz
Jesus Cea <jcea@jcea.es>
parents: 48910
diff changeset
4037 self->closed = 1;
b9ed14eb9e87 Fix some leaks - Neal Norwitz
Jesus Cea <jcea@jcea.es>
parents: 48910
diff changeset
4038 if (self->db_env) {
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4039 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4040 err = self->db_env->close(self->db_env, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4041 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4042 /* after calling DBEnv->close, regardless of error, this DBEnv
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4043 * may not be accessed again (Berkeley DB docs). */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4044 self->db_env = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4045 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4046 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4047 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4048 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4049
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4050 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4051 DBEnv_close(DBEnvObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4052 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4053 int flags = 0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4054
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4055 if (!PyArg_ParseTuple(args, "|i:close", &flags))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4056 return NULL;
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
4057 return DBEnv_close_internal(self, flags);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4058 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4059
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4060
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4061 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4062 DBEnv_open(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4063 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4064 int err, flags=0, mode=0660;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4065 char *db_home;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4066
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4067 if (!PyArg_ParseTuple(args, "z|ii:open", &db_home, &flags, &mode))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4068 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4069
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4070 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4071
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4072 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4073 err = self->db_env->open(self->db_env, db_home, flags, mode);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4074 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4075 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4076 self->closed = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4077 self->flags = flags;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4078 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4079 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4080
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4081
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4082 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4083 DBEnv_remove(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4084 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4085 int err, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4086 char *db_home;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4087
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4088 if (!PyArg_ParseTuple(args, "s|i:remove", &db_home, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4089 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4090 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4091 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4092 err = self->db_env->remove(self->db_env, db_home, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4093 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4094 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4095 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4096 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4097
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4098 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4099 static PyObject*
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4100 DBEnv_dbremove(DBEnvObject* self, PyObject* args, PyObject* kwargs)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4101 {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4102 int err;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4103 u_int32_t flags=0;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4104 char *file = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4105 char *database = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4106 PyObject *txnobj = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4107 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
4108 static char* kwnames[] = { "file", "database", "txn", "flags",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
4109 NULL };
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4110
39234
61c8b4104aef - pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
Gregory P. Smith <greg@mad-scientist.com>
parents: 39145
diff changeset
4111 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|zOi:dbremove", kwnames,
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4112 &file, &database, &txnobj, &flags)) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4113 return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4114 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4115 if (!checkTxnObj(txnobj, &txn)) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4116 return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4117 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4118 CHECK_ENV_NOT_CLOSED(self);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4119 MYDB_BEGIN_ALLOW_THREADS;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4120 err = self->db_env->dbremove(self->db_env, txn, file, database, flags);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4121 MYDB_END_ALLOW_THREADS;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4122 RETURN_IF_ERR();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4123 RETURN_NONE();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4124 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4125
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4126 static PyObject*
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4127 DBEnv_dbrename(DBEnvObject* self, PyObject* args, PyObject* kwargs)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4128 {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4129 int err;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4130 u_int32_t flags=0;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4131 char *file = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4132 char *database = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4133 char *newname = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4134 PyObject *txnobj = NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4135 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
4136 static char* kwnames[] = { "file", "database", "newname", "txn",
35999
9541369b0dca Add const to several API functions that take char *.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 35732
diff changeset
4137 "flags", NULL };
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4138
39234
61c8b4104aef - pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
Gregory P. Smith <greg@mad-scientist.com>
parents: 39145
diff changeset
4139 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "szs|Oi:dbrename", kwnames,
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4140 &file, &database, &newname, &txnobj, &flags)) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4141 return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4142 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4143 if (!checkTxnObj(txnobj, &txn)) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4144 return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4145 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4146 CHECK_ENV_NOT_CLOSED(self);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4147 MYDB_BEGIN_ALLOW_THREADS;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4148 err = self->db_env->dbrename(self->db_env, txn, file, database, newname,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4149 flags);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4150 MYDB_END_ALLOW_THREADS;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4151 RETURN_IF_ERR();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4152 RETURN_NONE();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4153 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4154
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4155 static PyObject*
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4156 DBEnv_set_encrypt(DBEnvObject* self, PyObject* args, PyObject* kwargs)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4157 {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4158 int err;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4159 u_int32_t flags=0;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4160 char *passwd = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
4161 static char* kwnames[] = { "passwd", "flags", NULL };
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4162
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4163 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|i:set_encrypt", kwnames,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4164 &passwd, &flags)) {
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4165 return NULL;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4166 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4167
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4168 MYDB_BEGIN_ALLOW_THREADS;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4169 err = self->db_env->set_encrypt(self->db_env, passwd, flags);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4170 MYDB_END_ALLOW_THREADS;
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4171
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4172 RETURN_IF_ERR();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4173 RETURN_NONE();
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4174 }
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4175 #endif /* DBVER >= 41 */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4176
28415
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4177 static PyObject*
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4178 DBEnv_set_timeout(DBEnvObject* self, PyObject* args, PyObject* kwargs)
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4179 {
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4180 int err;
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4181 u_int32_t flags=0;
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4182 u_int32_t timeout = 0;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
4183 static char* kwnames[] = { "timeout", "flags", NULL };
28415
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4184
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4185 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:set_timeout", kwnames,
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4186 &timeout, &flags)) {
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4187 return NULL;
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4188 }
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4189
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4190 MYDB_BEGIN_ALLOW_THREADS;
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4191 err = self->db_env->set_timeout(self->db_env, (db_timeout_t)timeout, flags);
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4192 MYDB_END_ALLOW_THREADS;
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4193
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4194 RETURN_IF_ERR();
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4195 RETURN_NONE();
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4196 }
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
4197
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4198 static PyObject*
30227
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4199 DBEnv_set_shm_key(DBEnvObject* self, PyObject* args)
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4200 {
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4201 int err;
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4202 long shm_key = 0;
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4203
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4204 if (!PyArg_ParseTuple(args, "l:set_shm_key", &shm_key))
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4205 return NULL;
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4206 CHECK_ENV_NOT_CLOSED(self);
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4207
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4208 err = self->db_env->set_shm_key(self->db_env, shm_key);
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4209 RETURN_IF_ERR();
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4210 RETURN_NONE();
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4211 }
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4212
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
4213 static PyObject*
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4214 DBEnv_set_cachesize(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4215 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4216 int err, gbytes=0, bytes=0, ncache=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4217
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4218 if (!PyArg_ParseTuple(args, "ii|i:set_cachesize",
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4219 &gbytes, &bytes, &ncache))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4220 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4221 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4222
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4223 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4224 err = self->db_env->set_cachesize(self->db_env, gbytes, bytes, ncache);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4225 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4226 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4227 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4228 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4229
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4230
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4231 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4232 DBEnv_set_flags(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4233 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4234 int err, flags=0, onoff=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4235
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4236 if (!PyArg_ParseTuple(args, "ii:set_flags",
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4237 &flags, &onoff))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4238 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4239 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4240
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4241 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4242 err = self->db_env->set_flags(self->db_env, flags, onoff);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4243 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4244 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4245 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4246 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4247
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4248
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4249 #if (DBVER >= 47)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4250 static PyObject*
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4251 DBEnv_log_set_config(DBEnvObject* self, PyObject* args)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4252 {
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4253 int err, flags, onoff;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4254
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4255 if (!PyArg_ParseTuple(args, "ii:log_set_config",
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4256 &flags, &onoff))
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4257 return NULL;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4258 CHECK_ENV_NOT_CLOSED(self);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4259
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4260 MYDB_BEGIN_ALLOW_THREADS;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4261 err = self->db_env->log_set_config(self->db_env, flags, onoff);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4262 MYDB_END_ALLOW_THREADS;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4263 RETURN_IF_ERR();
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4264 RETURN_NONE();
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4265 }
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4266 #endif /* DBVER >= 47 */
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4267
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4268
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4269 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4270 DBEnv_set_data_dir(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4271 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4272 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4273 char *dir;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4274
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4275 if (!PyArg_ParseTuple(args, "s:set_data_dir", &dir))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4276 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4277 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4278
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4279 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4280 err = self->db_env->set_data_dir(self->db_env, dir);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4281 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4282 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4283 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4284 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4285
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4286
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4287 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4288 DBEnv_set_lg_bsize(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4289 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4290 int err, lg_bsize;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4291
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4292 if (!PyArg_ParseTuple(args, "i:set_lg_bsize", &lg_bsize))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4293 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4294 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4295
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4296 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4297 err = self->db_env->set_lg_bsize(self->db_env, lg_bsize);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4298 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4299 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4300 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4301 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4302
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4303
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4304 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4305 DBEnv_set_lg_dir(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4306 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4307 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4308 char *dir;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4309
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4310 if (!PyArg_ParseTuple(args, "s:set_lg_dir", &dir))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4311 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4312 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4313
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4314 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4315 err = self->db_env->set_lg_dir(self->db_env, dir);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4316 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4317 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4318 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4319 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4320
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4321 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4322 DBEnv_set_lg_max(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4323 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4324 int err, lg_max;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4325
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4326 if (!PyArg_ParseTuple(args, "i:set_lg_max", &lg_max))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4327 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4328 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4329
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4330 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4331 err = self->db_env->set_lg_max(self->db_env, lg_max);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4332 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4333 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4334 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4335 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4336
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4337 #if (DBVER >= 42)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4338 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4339 DBEnv_get_lg_max(DBEnvObject* self)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4340 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4341 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4342 u_int32_t lg_max;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4343
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4344 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4345
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4346 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4347 err = self->db_env->get_lg_max(self->db_env, &lg_max);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4348 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4349 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4350 return NUMBER_FromLong(lg_max);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4351 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4352 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4353
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4354
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4355 static PyObject*
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4356 DBEnv_set_lg_regionmax(DBEnvObject* self, PyObject* args)
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4357 {
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4358 int err, lg_max;
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4359
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4360 if (!PyArg_ParseTuple(args, "i:set_lg_regionmax", &lg_max))
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4361 return NULL;
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4362 CHECK_ENV_NOT_CLOSED(self);
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4363
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4364 MYDB_BEGIN_ALLOW_THREADS;
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4365 err = self->db_env->set_lg_regionmax(self->db_env, lg_max);
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4366 MYDB_END_ALLOW_THREADS;
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4367 RETURN_IF_ERR();
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4368 RETURN_NONE();
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4369 }
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4370
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4371
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
4372 static PyObject*
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4373 DBEnv_set_lk_detect(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4374 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4375 int err, lk_detect;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4376
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4377 if (!PyArg_ParseTuple(args, "i:set_lk_detect", &lk_detect))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4378 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4379 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4380
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4381 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4382 err = self->db_env->set_lk_detect(self->db_env, lk_detect);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4383 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4384 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4385 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4386 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4387
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4388
40544
f9b27820798b Support linking of the bsddb module against BerkeleyDB 4.5.x
Gregory P. Smith <greg@mad-scientist.com>
parents: 40373
diff changeset
4389 #if (DBVER < 45)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4390 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4391 DBEnv_set_lk_max(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4392 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4393 int err, max;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4394
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4395 if (!PyArg_ParseTuple(args, "i:set_lk_max", &max))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4396 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4397 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4398
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4399 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4400 err = self->db_env->set_lk_max(self->db_env, max);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4401 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4402 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4403 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4404 }
40544
f9b27820798b Support linking of the bsddb module against BerkeleyDB 4.5.x
Gregory P. Smith <greg@mad-scientist.com>
parents: 40373
diff changeset
4405 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4406
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4407
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4408
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4409 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4410 DBEnv_set_lk_max_locks(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4411 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4412 int err, max;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4413
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4414 if (!PyArg_ParseTuple(args, "i:set_lk_max_locks", &max))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4415 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4416 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4417
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4418 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4419 err = self->db_env->set_lk_max_locks(self->db_env, max);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4420 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4421 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4422 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4423 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4424
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4425
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4426 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4427 DBEnv_set_lk_max_lockers(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4428 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4429 int err, max;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4430
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4431 if (!PyArg_ParseTuple(args, "i:set_lk_max_lockers", &max))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4432 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4433 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4434
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4435 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4436 err = self->db_env->set_lk_max_lockers(self->db_env, max);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4437 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4438 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4439 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4440 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4441
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4442
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4443 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4444 DBEnv_set_lk_max_objects(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4445 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4446 int err, max;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4447
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4448 if (!PyArg_ParseTuple(args, "i:set_lk_max_objects", &max))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4449 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4450 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4451
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4452 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4453 err = self->db_env->set_lk_max_objects(self->db_env, max);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4454 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4455 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4456 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4457 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4458
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4459
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4460 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4461 DBEnv_set_mp_mmapsize(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4462 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4463 int err, mp_mmapsize;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4464
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4465 if (!PyArg_ParseTuple(args, "i:set_mp_mmapsize", &mp_mmapsize))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4466 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4467 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4468
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4469 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4470 err = self->db_env->set_mp_mmapsize(self->db_env, mp_mmapsize);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4471 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4472 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4473 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4474 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4475
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4476
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4477 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4478 DBEnv_set_tmp_dir(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4479 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4480 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4481 char *dir;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4482
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4483 if (!PyArg_ParseTuple(args, "s:set_tmp_dir", &dir))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4484 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4485 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4486
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4487 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4488 err = self->db_env->set_tmp_dir(self->db_env, dir);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4489 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4490 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4491 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4492 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4493
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4494
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4495 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4496 DBEnv_txn_recover(DBEnvObject* self)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4497 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4498 int flags = DB_FIRST;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4499 int err, i;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4500 PyObject *list, *tuple, *gid;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4501 DBTxnObject *txn;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4502 #define PREPLIST_LEN 16
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4503 DB_PREPLIST preplist[PREPLIST_LEN];
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4504 long retp;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4505
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4506 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4507
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4508 list=PyList_New(0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4509 if (!list)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4510 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4511 while (!0) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4512 MYDB_BEGIN_ALLOW_THREADS
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4513 err=self->db_env->txn_recover(self->db_env,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4514 preplist, PREPLIST_LEN, &retp, flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4515 #undef PREPLIST_LEN
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4516 MYDB_END_ALLOW_THREADS
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4517 if (err) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4518 Py_DECREF(list);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4519 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4520 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4521 if (!retp) break;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4522 flags=DB_NEXT; /* Prepare for next loop pass */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4523 for (i=0; i<retp; i++) {
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
4524 gid=PyBytes_FromStringAndSize((char *)(preplist[i].gid),
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4525 DB_XIDDATASIZE);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4526 if (!gid) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4527 Py_DECREF(list);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4528 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4529 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4530 txn=newDBTxnObject(self, NULL, preplist[i].txn, flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4531 if (!txn) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4532 Py_DECREF(list);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4533 Py_DECREF(gid);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4534 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4535 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4536 txn->flag_prepare=1; /* Recover state */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4537 tuple=PyTuple_New(2);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4538 if (!tuple) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4539 Py_DECREF(list);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4540 Py_DECREF(gid);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4541 Py_DECREF(txn);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4542 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4543 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4544 if (PyTuple_SetItem(tuple, 0, gid)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4545 Py_DECREF(list);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4546 Py_DECREF(gid);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4547 Py_DECREF(txn);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4548 Py_DECREF(tuple);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4549 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4550 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4551 if (PyTuple_SetItem(tuple, 1, (PyObject *)txn)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4552 Py_DECREF(list);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4553 Py_DECREF(txn);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4554 Py_DECREF(tuple); /* This delete the "gid" also */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4555 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4556 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4557 if (PyList_Append(list, tuple)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4558 Py_DECREF(list);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4559 Py_DECREF(tuple);/* This delete the "gid" and the "txn" also */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4560 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4561 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4562 Py_DECREF(tuple);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4563 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4564 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4565 return list;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4566 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4567
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4568 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4569 DBEnv_txn_begin(DBEnvObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4570 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4571 int flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4572 PyObject* txnobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4573 DB_TXN *txn = NULL;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
4574 static char* kwnames[] = { "parent", "flags", NULL };
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4575
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4576 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:txn_begin", kwnames,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4577 &txnobj, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4578 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4579
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4580 if (!checkTxnObj(txnobj, &txn))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4581 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4582 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4583
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4584 return (PyObject*)newDBTxnObject(self, (DBTxnObject *)txnobj, NULL, flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4585 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4586
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4587
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4588 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4589 DBEnv_txn_checkpoint(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4590 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4591 int err, kbyte=0, min=0, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4592
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4593 if (!PyArg_ParseTuple(args, "|iii:txn_checkpoint", &kbyte, &min, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4594 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4595 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4596
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4597 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4598 err = self->db_env->txn_checkpoint(self->db_env, kbyte, min, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4599 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4600 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4601 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4602 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4603
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4604
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4605 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4606 DBEnv_set_tx_max(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4607 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4608 int err, max;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4609
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4610 if (!PyArg_ParseTuple(args, "i:set_tx_max", &max))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4611 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4612 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4613
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4614 err = self->db_env->set_tx_max(self->db_env, max);
36416
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4615 RETURN_IF_ERR();
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4616 RETURN_NONE();
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4617 }
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4618
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4619
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4620 static PyObject*
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4621 DBEnv_set_tx_timestamp(DBEnvObject* self, PyObject* args)
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4622 {
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4623 int err;
36746
ef5246ce8fe6 Fix DBEnv's set_tx_timestamp wrapper to be slightly more correct on
Thomas Wouters <thomas@python.org>
parents: 36722
diff changeset
4624 long stamp;
ef5246ce8fe6 Fix DBEnv's set_tx_timestamp wrapper to be slightly more correct on
Thomas Wouters <thomas@python.org>
parents: 36722
diff changeset
4625 time_t timestamp;
ef5246ce8fe6 Fix DBEnv's set_tx_timestamp wrapper to be slightly more correct on
Thomas Wouters <thomas@python.org>
parents: 36722
diff changeset
4626
ef5246ce8fe6 Fix DBEnv's set_tx_timestamp wrapper to be slightly more correct on
Thomas Wouters <thomas@python.org>
parents: 36722
diff changeset
4627 if (!PyArg_ParseTuple(args, "l:set_tx_timestamp", &stamp))
36416
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4628 return NULL;
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
4629 CHECK_ENV_NOT_CLOSED(self);
36746
ef5246ce8fe6 Fix DBEnv's set_tx_timestamp wrapper to be slightly more correct on
Thomas Wouters <thomas@python.org>
parents: 36722
diff changeset
4630 timestamp = (time_t)stamp;
ef5246ce8fe6 Fix DBEnv's set_tx_timestamp wrapper to be slightly more correct on
Thomas Wouters <thomas@python.org>
parents: 36722
diff changeset
4631 err = self->db_env->set_tx_timestamp(self->db_env, &timestamp);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4632 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4633 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4634 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4635
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4636
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4637 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4638 DBEnv_lock_detect(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4639 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4640 int err, atype, flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4641 int aborted = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4642
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4643 if (!PyArg_ParseTuple(args, "i|i:lock_detect", &atype, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4644 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4645 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4646
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4647 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4648 err = self->db_env->lock_detect(self->db_env, flags, atype, &aborted);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4649 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4650 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4651 return NUMBER_FromLong(aborted);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4652 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4653
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4654
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4655 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4656 DBEnv_lock_get(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4657 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4658 int flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4659 int locker, lock_mode;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4660 DBT obj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4661 PyObject* objobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4662
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4663 if (!PyArg_ParseTuple(args, "iOi|i:lock_get", &locker, &objobj, &lock_mode, &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4664 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4665
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4666
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4667 if (!make_dbt(objobj, &obj))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4668 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4669
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4670 return (PyObject*)newDBLockObject(self, locker, &obj, lock_mode, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4671 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4672
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4673
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4674 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4675 DBEnv_lock_id(DBEnvObject* self)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4676 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4677 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4678 u_int32_t theID;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4679
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4680 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4681 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4682 err = self->db_env->lock_id(self->db_env, &theID);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4683 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4684 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4685
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4686 return NUMBER_FromLong((long)theID);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4687 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4688
43767
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4689 static PyObject*
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4690 DBEnv_lock_id_free(DBEnvObject* self, PyObject* args)
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4691 {
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4692 int err;
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4693 u_int32_t theID;
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4694
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4695 if (!PyArg_ParseTuple(args, "I:lock_id_free", &theID))
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4696 return NULL;
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4697
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4698 CHECK_ENV_NOT_CLOSED(self);
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4699 MYDB_BEGIN_ALLOW_THREADS;
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4700 err = self->db_env->lock_id_free(self->db_env, theID);
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4701 MYDB_END_ALLOW_THREADS;
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4702 RETURN_IF_ERR();
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4703 RETURN_NONE();
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
4704 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4705
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4706 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4707 DBEnv_lock_put(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4708 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4709 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4710 DBLockObject* dblockobj;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4711
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4712 if (!PyArg_ParseTuple(args, "O!:lock_put", &DBLock_Type, &dblockobj))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4713 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4714
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4715 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4716 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4717 err = self->db_env->lock_put(self->db_env, &dblockobj->lock);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4718 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4719 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4720 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4721 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4722
38604
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4723 #if (DBVER >= 44)
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4724 static PyObject*
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4725 DBEnv_lsn_reset(DBEnvObject* self, PyObject* args, PyObject* kwargs)
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4726 {
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4727 int err;
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4728 char *file;
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4729 u_int32_t flags = 0;
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4730 static char* kwnames[] = { "file", "flags", NULL};
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4731
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4732 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "z|i:lsn_reset", kwnames,
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4733 &file, &flags))
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4734 return NULL;
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4735 CHECK_ENV_NOT_CLOSED(self);
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4736
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4737 MYDB_BEGIN_ALLOW_THREADS;
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4738 err = self->db_env->lsn_reset(self->db_env, file, flags);
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4739 MYDB_END_ALLOW_THREADS;
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4740 RETURN_IF_ERR();
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4741 RETURN_NONE();
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4742 }
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4743 #endif /* DBVER >= 4.4 */
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
4744
38600
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4745 static PyObject*
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4746 DBEnv_log_stat(DBEnvObject* self, PyObject* args)
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4747 {
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4748 int err;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4749 DB_LOG_STAT* statp = NULL;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4750 PyObject* d = NULL;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4751 u_int32_t flags = 0;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4752
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4753 if (!PyArg_ParseTuple(args, "|i:log_stat", &flags))
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4754 return NULL;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4755 CHECK_ENV_NOT_CLOSED(self);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4756
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4757 MYDB_BEGIN_ALLOW_THREADS;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4758 err = self->db_env->log_stat(self->db_env, &statp, flags);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4759 MYDB_END_ALLOW_THREADS;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4760 RETURN_IF_ERR();
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4761
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4762 /* Turn the stat structure into a dictionary */
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4763 d = PyDict_New();
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4764 if (d == NULL) {
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4765 if (statp)
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4766 free(statp);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4767 return NULL;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4768 }
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4769
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4770 #define MAKE_ENTRY(name) _addIntToDict(d, #name, statp->st_##name)
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4771
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4772 MAKE_ENTRY(magic);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4773 MAKE_ENTRY(version);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4774 MAKE_ENTRY(mode);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4775 MAKE_ENTRY(lg_bsize);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4776 #if (DBVER >= 44)
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4777 MAKE_ENTRY(lg_size);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4778 MAKE_ENTRY(record);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4779 #endif
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4780 #if (DBVER < 41)
38600
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4781 MAKE_ENTRY(lg_max);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4782 #endif
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4783 MAKE_ENTRY(w_mbytes);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4784 MAKE_ENTRY(w_bytes);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4785 MAKE_ENTRY(wc_mbytes);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4786 MAKE_ENTRY(wc_bytes);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4787 MAKE_ENTRY(wcount);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4788 MAKE_ENTRY(wcount_fill);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4789 #if (DBVER >= 44)
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4790 MAKE_ENTRY(rcount);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4791 #endif
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4792 MAKE_ENTRY(scount);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4793 MAKE_ENTRY(cur_file);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4794 MAKE_ENTRY(cur_offset);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4795 MAKE_ENTRY(disk_file);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4796 MAKE_ENTRY(disk_offset);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4797 MAKE_ENTRY(maxcommitperflush);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4798 MAKE_ENTRY(mincommitperflush);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4799 MAKE_ENTRY(regsize);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4800 MAKE_ENTRY(region_wait);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4801 MAKE_ENTRY(region_nowait);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4802
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4803 #undef MAKE_ENTRY
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4804 free(statp);
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4805 return d;
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4806 } /* DBEnv_log_stat */
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
4807
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4808
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4809 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4810 DBEnv_lock_stat(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4811 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4812 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4813 DB_LOCK_STAT* sp;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4814 PyObject* d = NULL;
26367
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
4815 u_int32_t flags = 0;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4816
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4817 if (!PyArg_ParseTuple(args, "|i:lock_stat", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4818 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4819 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4820
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4821 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4822 err = self->db_env->lock_stat(self->db_env, &sp, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4823 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4824 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4825
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4826 /* Turn the stat structure into a dictionary */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4827 d = PyDict_New();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4828 if (d == NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4829 free(sp);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4830 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4831 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4832
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4833 #define MAKE_ENTRY(name) _addIntToDict(d, #name, sp->st_##name)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4834
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4835 #if (DBVER < 41)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4836 MAKE_ENTRY(lastid);
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
4837 #endif
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4838 #if (DBVER >=41)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4839 MAKE_ENTRY(id);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4840 MAKE_ENTRY(cur_maxid);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4841 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4842 MAKE_ENTRY(nmodes);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4843 MAKE_ENTRY(maxlocks);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4844 MAKE_ENTRY(maxlockers);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4845 MAKE_ENTRY(maxobjects);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4846 MAKE_ENTRY(nlocks);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4847 MAKE_ENTRY(maxnlocks);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4848 MAKE_ENTRY(nlockers);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4849 MAKE_ENTRY(maxnlockers);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4850 MAKE_ENTRY(nobjects);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4851 MAKE_ENTRY(maxnobjects);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4852 MAKE_ENTRY(nrequests);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4853 MAKE_ENTRY(nreleases);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4854 #if (DBVER >= 44)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4855 MAKE_ENTRY(nupgrade);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4856 MAKE_ENTRY(ndowngrade);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4857 #endif
36396
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
4858 #if (DBVER < 44)
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
4859 MAKE_ENTRY(nnowaits); /* these were renamed in 4.4 */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4860 MAKE_ENTRY(nconflicts);
36396
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
4861 #else
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
4862 MAKE_ENTRY(lock_nowait);
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
4863 MAKE_ENTRY(lock_wait);
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
4864 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4865 MAKE_ENTRY(ndeadlocks);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4866 #if (DBVER >= 41)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4867 MAKE_ENTRY(locktimeout);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4868 MAKE_ENTRY(txntimeout);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4869 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4870 MAKE_ENTRY(nlocktimeouts);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4871 MAKE_ENTRY(ntxntimeouts);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4872 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4873 MAKE_ENTRY(objs_wait);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4874 MAKE_ENTRY(objs_nowait);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4875 MAKE_ENTRY(lockers_wait);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4876 MAKE_ENTRY(lockers_nowait);
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4877 #if (DBVER >= 47)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4878 MAKE_ENTRY(lock_wait);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4879 MAKE_ENTRY(lock_nowait);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4880 #else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4881 MAKE_ENTRY(locks_wait);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4882 MAKE_ENTRY(locks_nowait);
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
4883 #endif
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4884 MAKE_ENTRY(hash_len);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4885 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4886 MAKE_ENTRY(regsize);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4887 MAKE_ENTRY(region_wait);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4888 MAKE_ENTRY(region_nowait);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4889
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4890 #undef MAKE_ENTRY
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4891 free(sp);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4892 return d;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4893 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4894
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4895 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4896 DBEnv_log_flush(DBEnvObject* self)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4897 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4898 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4899
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4900 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4901
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4902 MYDB_BEGIN_ALLOW_THREADS
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4903 err = self->db_env->log_flush(self->db_env, NULL);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4904 MYDB_END_ALLOW_THREADS
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4905
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4906 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4907 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4908 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4909
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4910 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4911 DBEnv_log_archive(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4912 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4913 int flags=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4914 int err;
38594
1c23e95a80a2 bugfix: when log_archive was called with the DB_ARCH_REMOVE flag present
Gregory P. Smith <greg@mad-scientist.com>
parents: 38489
diff changeset
4915 char **log_list = NULL;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4916 PyObject* list;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4917 PyObject* item = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4918
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4919 if (!PyArg_ParseTuple(args, "|i:log_archive", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4920 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4921
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4922 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4923 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4924 err = self->db_env->log_archive(self->db_env, &log_list, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4925 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4926 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4927
38595
b00cbb08e0cc fix a bug in the previous commit. don't leak empty list on error return and
Gregory P. Smith <greg@mad-scientist.com>
parents: 38594
diff changeset
4928 list = PyList_New(0);
b00cbb08e0cc fix a bug in the previous commit. don't leak empty list on error return and
Gregory P. Smith <greg@mad-scientist.com>
parents: 38594
diff changeset
4929 if (list == NULL) {
b00cbb08e0cc fix a bug in the previous commit. don't leak empty list on error return and
Gregory P. Smith <greg@mad-scientist.com>
parents: 38594
diff changeset
4930 if (log_list)
b00cbb08e0cc fix a bug in the previous commit. don't leak empty list on error return and
Gregory P. Smith <greg@mad-scientist.com>
parents: 38594
diff changeset
4931 free(log_list);
b00cbb08e0cc fix a bug in the previous commit. don't leak empty list on error return and
Gregory P. Smith <greg@mad-scientist.com>
parents: 38594
diff changeset
4932 return NULL;
b00cbb08e0cc fix a bug in the previous commit. don't leak empty list on error return and
Gregory P. Smith <greg@mad-scientist.com>
parents: 38594
diff changeset
4933 }
b00cbb08e0cc fix a bug in the previous commit. don't leak empty list on error return and
Gregory P. Smith <greg@mad-scientist.com>
parents: 38594
diff changeset
4934
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4935 if (log_list) {
38594
1c23e95a80a2 bugfix: when log_archive was called with the DB_ARCH_REMOVE flag present
Gregory P. Smith <greg@mad-scientist.com>
parents: 38489
diff changeset
4936 char **log_list_start;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4937 for (log_list_start = log_list; *log_list != NULL; ++log_list) {
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
4938 item = PyBytes_FromString (*log_list);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4939 if (item == NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4940 Py_DECREF(list);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4941 list = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4942 break;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4943 }
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4944 if (PyList_Append(list, item)) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4945 Py_DECREF(list);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4946 list = NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4947 Py_DECREF(item);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4948 break;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
4949 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4950 Py_DECREF(item);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4951 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4952 free(log_list_start);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4953 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4954 return list;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4955 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4956
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4957
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4958 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4959 DBEnv_txn_stat(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4960 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4961 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4962 DB_TXN_STAT* sp;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4963 PyObject* d = NULL;
26367
0c7cb2746d86 Merge with bsddb3 2002.11.23.10.42.36
Martin v. Löwis <martin@v.loewis.de>
parents: 26280
diff changeset
4964 u_int32_t flags=0;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4965
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4966 if (!PyArg_ParseTuple(args, "|i:txn_stat", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4967 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4968 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4969
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4970 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4971 err = self->db_env->txn_stat(self->db_env, &sp, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4972 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4973 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4974
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4975 /* Turn the stat structure into a dictionary */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4976 d = PyDict_New();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4977 if (d == NULL) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4978 free(sp);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4979 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4980 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4981
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4982 #define MAKE_ENTRY(name) _addIntToDict(d, #name, sp->st_##name)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4983 #define MAKE_TIME_T_ENTRY(name) _addTimeTToDict(d, #name, sp->st_##name)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4984 #define MAKE_DB_LSN_ENTRY(name) _addDB_lsnToDict(d, #name, sp->st_##name)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4985
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4986 MAKE_DB_LSN_ENTRY(last_ckp);
41549
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
4987 MAKE_TIME_T_ENTRY(time_ckp);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4988 MAKE_ENTRY(last_txnid);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4989 MAKE_ENTRY(maxtxns);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4990 MAKE_ENTRY(nactive);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4991 MAKE_ENTRY(maxnactive);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4992 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4993 MAKE_ENTRY(nsnapshot);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4994 MAKE_ENTRY(maxnsnapshot);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4995 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4996 MAKE_ENTRY(nbegins);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4997 MAKE_ENTRY(naborts);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
4998 MAKE_ENTRY(ncommits);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
4999 MAKE_ENTRY(nrestores);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5000 MAKE_ENTRY(regsize);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5001 MAKE_ENTRY(region_wait);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5002 MAKE_ENTRY(region_nowait);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5003
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5004 #undef MAKE_DB_LSN_ENTRY
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5005 #undef MAKE_ENTRY
41549
7cc31032e206 Accomodate 64 bit time_t in the _bsddb module.
Kristján Valur Jónsson <kristjan@ccpgames.com>
parents: 40545
diff changeset
5006 #undef MAKE_TIME_T_ENTRY
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5007 free(sp);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5008 return d;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5009 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5010
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5011
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5012 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5013 DBEnv_set_get_returns_none(DBEnvObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5014 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5015 int flags=0;
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
5016 int oldValue=0;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5017
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5018 if (!PyArg_ParseTuple(args,"i:set_get_returns_none", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5019 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5020 CHECK_ENV_NOT_CLOSED(self);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5021
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
5022 if (self->moduleFlags.getReturnsNone)
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
5023 ++oldValue;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
5024 if (self->moduleFlags.cursorSetReturnsNone)
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
5025 ++oldValue;
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
5026 self->moduleFlags.getReturnsNone = (flags >= 1);
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
5027 self->moduleFlags.cursorSetReturnsNone = (flags >= 2);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5028 return NUMBER_FromLong(oldValue);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5029 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5030
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5031 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5032 DBEnv_get_private(DBEnvObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5033 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5034 /* We can give out the private field even if dbenv is closed */
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5035 Py_INCREF(self->private_obj);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5036 return self->private_obj;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5037 }
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5038
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5039 static PyObject*
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5040 DBEnv_set_private(DBEnvObject* self, PyObject* private_obj)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5041 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5042 /* We can set the private field even if dbenv is closed */
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5043 Py_DECREF(self->private_obj);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5044 Py_INCREF(private_obj);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5045 self->private_obj = private_obj;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5046 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5047 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5048
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5049
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5050 static PyObject*
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5051 DBEnv_set_rpc_server(DBEnvObject* self, PyObject* args, PyObject* kwargs)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5052 {
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5053 int err;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5054 char *host;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5055 long cl_timeout=0, sv_timeout=0;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5056
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5057 static char* kwnames[] = { "host", "cl_timeout", "sv_timeout", NULL};
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5058
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5059 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|ll:set_rpc_server", kwnames,
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5060 &host, &cl_timeout, &sv_timeout))
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5061 return NULL;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5062 CHECK_ENV_NOT_CLOSED(self);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5063
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5064 MYDB_BEGIN_ALLOW_THREADS;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5065 err = self->db_env->set_rpc_server(self->db_env, NULL, host, cl_timeout,
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5066 sv_timeout, 0);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5067 MYDB_END_ALLOW_THREADS;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5068 RETURN_IF_ERR();
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5069 RETURN_NONE();
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5070 }
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5071
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5072 static PyObject*
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5073 DBEnv_set_verbose(DBEnvObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5074 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5075 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5076 int which, onoff;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5077
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5078 if (!PyArg_ParseTuple(args, "ii:set_verbose", &which, &onoff)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5079 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5080 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5081 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5082 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5083 err = self->db_env->set_verbose(self->db_env, which, onoff);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5084 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5085 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5086 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5087 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5088
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5089 #if (DBVER >= 42)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5090 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5091 DBEnv_get_verbose(DBEnvObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5092 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5093 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5094 int which;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5095 int verbose;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5096
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5097 if (!PyArg_ParseTuple(args, "i:get_verbose", &which)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5098 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5099 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5100 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5101 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5102 err = self->db_env->get_verbose(self->db_env, which, &verbose);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5103 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5104 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5105 return PyBool_FromLong(verbose);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5106 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5107 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5108
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5109 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5110 static void
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5111 _dbenv_event_notifyCallback(DB_ENV* db_env, u_int32_t event, void *event_info)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5112 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5113 DBEnvObject *dbenv;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5114 PyObject* callback;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5115 PyObject* args;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5116 PyObject* result = NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5117
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5118 MYDB_BEGIN_BLOCK_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5119 dbenv = (DBEnvObject *)db_env->app_private;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5120 callback = dbenv->event_notifyCallback;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5121 if (callback) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5122 if (event == DB_EVENT_REP_NEWMASTER) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5123 args = Py_BuildValue("(Oii)", dbenv, event, *((int *)event_info));
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5124 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5125 args = Py_BuildValue("(OiO)", dbenv, event, Py_None);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5126 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5127 if (args) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5128 result = PyEval_CallObject(callback, args);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5129 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5130 if ((!args) || (!result)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5131 PyErr_Print();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5132 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5133 Py_XDECREF(args);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5134 Py_XDECREF(result);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5135 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5136 MYDB_END_BLOCK_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5137 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5138 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5139
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5140 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5141 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5142 DBEnv_set_event_notify(DBEnvObject* self, PyObject* notifyFunc)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5143 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5144 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5145
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5146 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5147
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5148 if (!PyCallable_Check(notifyFunc)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5149 makeTypeError("Callable", notifyFunc);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5150 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5151 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5152
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5153 Py_XDECREF(self->event_notifyCallback);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5154 Py_INCREF(notifyFunc);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5155 self->event_notifyCallback = notifyFunc;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5156
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5157 /* This is to workaround a problem with un-initialized threads (see
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5158 comment in DB_associate) */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5159 #ifdef WITH_THREAD
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5160 PyEval_InitThreads();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5161 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5162
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5163 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5164 err = self->db_env->set_event_notify(self->db_env, _dbenv_event_notifyCallback);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5165 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5166
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5167 if (err) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5168 Py_DECREF(notifyFunc);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5169 self->event_notifyCallback = NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5170 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5171
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5172 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5173 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5174 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5175 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5176
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5177
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5178 /* --------------------------------------------------------------------- */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5179 /* REPLICATION METHODS: Base Replication */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5180
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5181
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5182 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5183 DBEnv_rep_process_message(DBEnvObject* self, PyObject* args)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5184 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5185 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5186 PyObject *control_py, *rec_py;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5187 DBT control, rec;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5188 int envid;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5189 #if (DBVER >= 42)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5190 DB_LSN lsn;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5191 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5192
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5193 if (!PyArg_ParseTuple(args, "OOi:rep_process_message", &control_py,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5194 &rec_py, &envid))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5195 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5196 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5197
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5198 if (!make_dbt(control_py, &control))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5199 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5200 if (!make_dbt(rec_py, &rec))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5201 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5202
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5203 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5204 #if (DBVER >= 46)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5205 err = self->db_env->rep_process_message(self->db_env, &control, &rec,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5206 envid, &lsn);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5207 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5208 #if (DBVER >= 42)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5209 err = self->db_env->rep_process_message(self->db_env, &control, &rec,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5210 &envid, &lsn);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5211 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5212 err = self->db_env->rep_process_message(self->db_env, &control, &rec,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5213 &envid);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5214 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5215 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5216 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5217 switch (err) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5218 case DB_REP_NEWMASTER :
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5219 return Py_BuildValue("(iO)", envid, Py_None);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5220 break;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5221
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5222 case DB_REP_DUPMASTER :
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5223 case DB_REP_HOLDELECTION :
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5224 #if (DBVER >= 44)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5225 case DB_REP_IGNORE :
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5226 case DB_REP_JOIN_FAILURE :
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5227 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5228 return Py_BuildValue("(iO)", err, Py_None);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5229 break;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5230 case DB_REP_NEWSITE :
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5231 {
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5232 PyObject *tmp, *r;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5233
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5234 if (!(tmp = PyBytes_FromStringAndSize(rec.data, rec.size))) {
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5235 return NULL;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5236 }
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5237
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5238 r = Py_BuildValue("(iO)", err, tmp);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5239 Py_DECREF(tmp);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5240 return r;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5241 break;
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5242 }
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5243 #if (DBVER >= 42)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5244 case DB_REP_NOTPERM :
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5245 case DB_REP_ISPERM :
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5246 return Py_BuildValue("(i(ll))", err, lsn.file, lsn.offset);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5247 break;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5248 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5249 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5250 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5251 return Py_BuildValue("(OO)", Py_None, Py_None);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5252 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5253
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5254 static int
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5255 _DBEnv_rep_transportCallback(DB_ENV* db_env, const DBT* control, const DBT* rec,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5256 const DB_LSN *lsn, int envid, u_int32_t flags)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5257 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5258 DBEnvObject *dbenv;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5259 PyObject* rep_transport;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5260 PyObject* args;
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5261 PyObject *a, *b;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5262 PyObject* result = NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5263 int ret=0;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5264
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5265 MYDB_BEGIN_BLOCK_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5266 dbenv = (DBEnvObject *)db_env->app_private;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5267 rep_transport = dbenv->rep_transport;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5268
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5269 /*
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5270 ** The errors in 'a' or 'b' are detected in "Py_BuildValue".
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5271 */
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5272 a = PyBytes_FromStringAndSize(control->data, control->size);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5273 b = PyBytes_FromStringAndSize(rec->data, rec->size);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5274
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5275 args = Py_BuildValue(
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5276 #if (PY_VERSION_HEX >= 0x02040000)
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5277 "(OOO(ll)iI)",
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5278 #else
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5279 "(OOO(ll)ii)",
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5280 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5281 dbenv,
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5282 a, b,
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5283 lsn->file, lsn->offset, envid, flags);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5284 if (args) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5285 result = PyEval_CallObject(rep_transport, args);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5286 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5287
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5288 if ((!args) || (!result)) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5289 PyErr_Print();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5290 ret = -1;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5291 }
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5292 Py_XDECREF(a);
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
5293 Py_XDECREF(b);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5294 Py_XDECREF(args);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5295 Py_XDECREF(result);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5296 MYDB_END_BLOCK_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5297 return ret;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5298 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5299
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5300 #if (DBVER <= 41)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5301 static int
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5302 _DBEnv_rep_transportCallbackOLD(DB_ENV* db_env, const DBT* control, const DBT* rec,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5303 int envid, u_int32_t flags)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5304 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5305 DB_LSN lsn;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5306
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5307 lsn.file = -1; /* Dummy values */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5308 lsn.offset = -1;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5309 return _DBEnv_rep_transportCallback(db_env, control, rec, &lsn, envid,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5310 flags);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5311 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5312 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5313
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5314 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5315 DBEnv_rep_set_transport(DBEnvObject* self, PyObject* args)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5316 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5317 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5318 int envid;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5319 PyObject *rep_transport;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5320
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5321 if (!PyArg_ParseTuple(args, "iO:rep_set_transport", &envid, &rep_transport))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5322 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5323 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5324 if (!PyCallable_Check(rep_transport)) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5325 makeTypeError("Callable", rep_transport);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5326 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5327 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5328
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5329 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5330 #if (DBVER >=45)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5331 err = self->db_env->rep_set_transport(self->db_env, envid,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5332 &_DBEnv_rep_transportCallback);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5333 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5334 #if (DBVER >= 42)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5335 err = self->db_env->set_rep_transport(self->db_env, envid,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5336 &_DBEnv_rep_transportCallback);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5337 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5338 err = self->db_env->set_rep_transport(self->db_env, envid,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5339 &_DBEnv_rep_transportCallbackOLD);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5340 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5341 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5342 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5343 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5344
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5345 Py_DECREF(self->rep_transport);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5346 Py_INCREF(rep_transport);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5347 self->rep_transport = rep_transport;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5348 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5349 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5350
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5351 #if (DBVER >= 47)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5352 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5353 DBEnv_rep_set_request(DBEnvObject* self, PyObject* args)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5354 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5355 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5356 unsigned int minimum, maximum;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5357
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5358 if (!PyArg_ParseTuple(args,"II:rep_set_request", &minimum, &maximum))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5359 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5360 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5361
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5362 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5363 err = self->db_env->rep_set_request(self->db_env, minimum, maximum);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5364 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5365 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5366 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5367 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5368
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5369 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5370 DBEnv_rep_get_request(DBEnvObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5371 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5372 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5373 u_int32_t minimum, maximum;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5374
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5375 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5376 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5377 err = self->db_env->rep_get_request(self->db_env, &minimum, &maximum);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5378 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5379 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5380 #if (PY_VERSION_HEX >= 0x02040000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5381 return Py_BuildValue("II", minimum, maximum);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5382 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5383 return Py_BuildValue("ii", minimum, maximum);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5384 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5385 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5386 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5387
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5388 #if (DBVER >= 45)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5389 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5390 DBEnv_rep_set_limit(DBEnvObject* self, PyObject* args)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5391 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5392 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5393 int limit;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5394
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5395 if (!PyArg_ParseTuple(args,"i:rep_set_limit", &limit))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5396 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5397 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5398
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5399 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5400 err = self->db_env->rep_set_limit(self->db_env, 0, limit);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5401 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5402 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5403 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5404 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5405
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5406 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5407 DBEnv_rep_get_limit(DBEnvObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5408 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5409 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5410 u_int32_t gbytes, bytes;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5411
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5412 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5413 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5414 err = self->db_env->rep_get_limit(self->db_env, &gbytes, &bytes);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5415 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5416 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5417 return NUMBER_FromLong(bytes);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5418 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5419 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5420
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5421 #if (DBVER >= 44)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5422 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5423 DBEnv_rep_set_config(DBEnvObject* self, PyObject* args)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5424 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5425 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5426 int which;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5427 int onoff;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5428
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5429 if (!PyArg_ParseTuple(args,"ii:rep_set_config", &which, &onoff))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5430 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5431 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5432
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5433 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5434 err = self->db_env->rep_set_config(self->db_env, which, onoff);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5435 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5436 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5437 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5438 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5439
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5440 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5441 DBEnv_rep_get_config(DBEnvObject* self, PyObject* args)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5442 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5443 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5444 int which;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5445 int onoff;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5446
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5447 if (!PyArg_ParseTuple(args, "i:rep_get_config", &which)) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5448 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5449 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5450 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5451 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5452 err = self->db_env->rep_get_config(self->db_env, which, &onoff);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5453 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5454 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5455 return PyBool_FromLong(onoff);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5456 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5457 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5458
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5459 #if (DBVER >= 46)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5460 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5461 DBEnv_rep_elect(DBEnvObject* self, PyObject* args)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5462 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5463 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5464 u_int32_t nsites, nvotes;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5465
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5466 if (!PyArg_ParseTuple(args, "II:rep_elect", &nsites, &nvotes)) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5467 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5468 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5469 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5470 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5471 err = self->db_env->rep_elect(self->db_env, nvotes, nvotes, 0);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5472 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5473 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5474 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5475 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5476 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5477
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5478 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5479 DBEnv_rep_start(DBEnvObject* self, PyObject* args, PyObject* kwargs)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5480 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5481 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5482 PyObject *cdata_py = Py_None;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5483 DBT cdata;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5484 int flags;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5485 static char* kwnames[] = {"flags","cdata", NULL};
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5486
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5487 if (!PyArg_ParseTupleAndKeywords(args, kwargs,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5488 "i|O:rep_start", kwnames, &flags, &cdata_py))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5489 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5490 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5491 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5492 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5493
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5494 if (!make_dbt(cdata_py, &cdata))
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5495 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5496
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5497 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5498 err = self->db_env->rep_start(self->db_env, cdata.size ? &cdata : NULL,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5499 flags);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5500 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5501 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5502 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5503 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5504
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5505 #if (DBVER >= 44)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5506 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5507 DBEnv_rep_sync(DBEnvObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5508 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5509 int err;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5510
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5511 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5512 MYDB_BEGIN_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5513 err = self->db_env->rep_sync(self->db_env, 0);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5514 MYDB_END_ALLOW_THREADS;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5515 RETURN_IF_ERR();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5516 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5517 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5518 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5519
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5520
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5521 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5522 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5523 DBEnv_rep_set_nsites(DBEnvObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5524 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5525 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5526 int nsites;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5527
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5528 if (!PyArg_ParseTuple(args, "i:rep_set_nsites", &nsites)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5529 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5530 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5531 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5532 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5533 err = self->db_env->rep_set_nsites(self->db_env, nsites);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5534 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5535 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5536 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5537 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5538
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5539 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5540 DBEnv_rep_get_nsites(DBEnvObject* self)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5541 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5542 int err;
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5543 #if (DBVER >= 47)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5544 u_int32_t nsites;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5545 #else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5546 int nsites;
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5547 #endif
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5548
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5549 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5550 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5551 err = self->db_env->rep_get_nsites(self->db_env, &nsites);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5552 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5553 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5554 return NUMBER_FromLong(nsites);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5555 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5556
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5557 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5558 DBEnv_rep_set_priority(DBEnvObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5559 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5560 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5561 int priority;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5562
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5563 if (!PyArg_ParseTuple(args, "i:rep_set_priority", &priority)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5564 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5565 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5566 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5567 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5568 err = self->db_env->rep_set_priority(self->db_env, priority);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5569 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5570 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5571 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5572 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5573
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5574 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5575 DBEnv_rep_get_priority(DBEnvObject* self)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5576 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5577 int err;
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5578 #if (DBVER >= 47)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5579 u_int32_t priority;
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5580 #else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5581 int priority;
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
5582 #endif
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5583
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5584 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5585 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5586 err = self->db_env->rep_get_priority(self->db_env, &priority);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5587 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5588 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5589 return NUMBER_FromLong(priority);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5590 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5591
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5592 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5593 DBEnv_rep_set_timeout(DBEnvObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5594 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5595 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5596 int which, timeout;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5597
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5598 if (!PyArg_ParseTuple(args, "ii:rep_set_timeout", &which, &timeout)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5599 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5600 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5601 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5602 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5603 err = self->db_env->rep_set_timeout(self->db_env, which, timeout);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5604 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5605 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5606 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5607 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5608
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5609 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5610 DBEnv_rep_get_timeout(DBEnvObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5611 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5612 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5613 int which;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5614 u_int32_t timeout;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5615
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5616 if (!PyArg_ParseTuple(args, "i:rep_get_timeout", &which)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5617 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5618 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5619 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5620 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5621 err = self->db_env->rep_get_timeout(self->db_env, which, &timeout);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5622 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5623 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5624 return NUMBER_FromLong(timeout);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5625 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5626 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5627
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5628 /* --------------------------------------------------------------------- */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5629 /* REPLICATION METHODS: Replication Manager */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5630
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5631 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5632 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5633 DBEnv_repmgr_start(DBEnvObject* self, PyObject* args, PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5634 kwargs)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5635 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5636 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5637 int nthreads, flags;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5638 static char* kwnames[] = {"nthreads","flags", NULL};
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5639
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5640 if (!PyArg_ParseTupleAndKeywords(args, kwargs,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5641 "ii:repmgr_start", kwnames, &nthreads, &flags))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5642 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5643 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5644 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5645 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5646 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5647 err = self->db_env->repmgr_start(self->db_env, nthreads, flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5648 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5649 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5650 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5651 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5652
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5653 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5654 DBEnv_repmgr_set_local_site(DBEnvObject* self, PyObject* args, PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5655 kwargs)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5656 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5657 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5658 char *host;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5659 int port;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5660 int flags = 0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5661 static char* kwnames[] = {"host", "port", "flags", NULL};
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5662
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5663 if (!PyArg_ParseTupleAndKeywords(args, kwargs,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5664 "si|i:repmgr_set_local_site", kwnames, &host, &port, &flags))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5665 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5666 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5667 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5668 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5669 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5670 err = self->db_env->repmgr_set_local_site(self->db_env, host, port, flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5671 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5672 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5673 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5674 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5675
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5676 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5677 DBEnv_repmgr_add_remote_site(DBEnvObject* self, PyObject* args, PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5678 kwargs)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5679 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5680 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5681 char *host;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5682 int port;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5683 int flags = 0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5684 int eidp;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5685 static char* kwnames[] = {"host", "port", "flags", NULL};
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5686
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5687 if (!PyArg_ParseTupleAndKeywords(args, kwargs,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5688 "si|i:repmgr_add_remote_site", kwnames, &host, &port, &flags))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5689 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5690 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5691 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5692 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5693 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5694 err = self->db_env->repmgr_add_remote_site(self->db_env, host, port, &eidp, flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5695 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5696 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5697 return NUMBER_FromLong(eidp);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5698 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5699
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5700 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5701 DBEnv_repmgr_set_ack_policy(DBEnvObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5702 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5703 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5704 int ack_policy;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5705
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5706 if (!PyArg_ParseTuple(args, "i:repmgr_set_ack_policy", &ack_policy))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5707 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5708 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5709 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5710 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5711 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5712 err = self->db_env->repmgr_set_ack_policy(self->db_env, ack_policy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5713 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5714 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5715 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5716 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5717
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5718 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5719 DBEnv_repmgr_get_ack_policy(DBEnvObject* self)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5720 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5721 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5722 int ack_policy;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5723
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5724 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5725 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5726 err = self->db_env->repmgr_get_ack_policy(self->db_env, &ack_policy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5727 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5728 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5729 return NUMBER_FromLong(ack_policy);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5730 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5731
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5732 static PyObject*
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5733 DBEnv_repmgr_site_list(DBEnvObject* self)
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5734 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5735 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5736 unsigned int countp;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5737 DB_REPMGR_SITE *listp;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5738 PyObject *stats, *key, *tuple;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5739
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5740 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5741 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5742 err = self->db_env->repmgr_site_list(self->db_env, &countp, &listp);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5743 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5744 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5745
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5746 stats=PyDict_New();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5747 if (stats == NULL) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5748 free(listp);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5749 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5750 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5751
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5752 for(;countp--;) {
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5753 key=NUMBER_FromLong(listp[countp].eid);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5754 if(!key) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5755 Py_DECREF(stats);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5756 free(listp);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5757 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5758 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5759 #if (PY_VERSION_HEX >= 0x02040000)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5760 tuple=Py_BuildValue("(sII)", listp[countp].host,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5761 listp[countp].port, listp[countp].status);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5762 #else
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5763 tuple=Py_BuildValue("(sii)", listp[countp].host,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5764 listp[countp].port, listp[countp].status);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5765 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5766 if(!tuple) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5767 Py_DECREF(key);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5768 Py_DECREF(stats);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5769 free(listp);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5770 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5771 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5772 if(PyDict_SetItem(stats, key, tuple)) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5773 Py_DECREF(key);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5774 Py_DECREF(tuple);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5775 Py_DECREF(stats);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5776 free(listp);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5777 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5778 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5779 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5780 free(listp);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5781 return stats;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5782 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5783 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5784
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5785 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5786 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5787 DBEnv_repmgr_stat_print(DBEnvObject* self, PyObject* args, PyObject *kwargs)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5788 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5789 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5790 int flags=0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5791 static char* kwnames[] = { "flags", NULL };
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5792
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5793 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|i:repmgr_stat_print",
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5794 kwnames, &flags))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5795 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5796 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5797 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5798 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5799 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5800 err = self->db_env->repmgr_stat_print(self->db_env, flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5801 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5802 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5803 RETURN_NONE();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5804 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5805
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5806 static PyObject*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5807 DBEnv_repmgr_stat(DBEnvObject* self, PyObject* args, PyObject *kwargs)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5808 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5809 int err;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5810 int flags=0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5811 DB_REPMGR_STAT *statp;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5812 PyObject *stats;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5813 static char* kwnames[] = { "flags", NULL };
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5814
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5815 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|i:repmgr_stat",
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5816 kwnames, &flags))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5817 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5818 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5819 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5820 CHECK_ENV_NOT_CLOSED(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5821 MYDB_BEGIN_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5822 err = self->db_env->repmgr_stat(self->db_env, &statp, flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5823 MYDB_END_ALLOW_THREADS;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5824 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5825
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5826 stats=PyDict_New();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5827 if (stats == NULL) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5828 free(statp);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5829 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5830 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5831
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5832 #define MAKE_ENTRY(name) _addIntToDict(stats, #name, statp->st_##name)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5833
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5834 MAKE_ENTRY(perm_failed);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5835 MAKE_ENTRY(msgs_queued);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5836 MAKE_ENTRY(msgs_dropped);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5837 MAKE_ENTRY(connection_drop);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5838 MAKE_ENTRY(connect_fail);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5839
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5840 #undef MAKE_ENTRY
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5841
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5842 free(statp);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5843 return stats;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5844 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5845 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5846
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5847
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5848 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5849 /* DBTxn methods */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5850
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5851
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5852 static void _close_transaction_cursors(DBTxnObject* txn)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5853 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5854 PyObject *dummy;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5855
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5856 while(txn->children_cursors) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5857 PyErr_Warn(PyExc_RuntimeWarning,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5858 "Must close cursors before resolving a transaction.");
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5859 dummy=DBC_close_internal(txn->children_cursors);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5860 Py_XDECREF(dummy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5861 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5862 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5863
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5864 static void _promote_transaction_dbs_and_sequences(DBTxnObject *txn)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5865 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5866 DBObject *db;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5867 #if (DBVER >= 43)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5868 DBSequenceObject *dbs;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5869 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5870
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5871 while (txn->children_dbs) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5872 db=txn->children_dbs;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5873 EXTRACT_FROM_DOUBLE_LINKED_LIST_TXN(db);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5874 if (txn->parent_txn) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5875 INSERT_IN_DOUBLE_LINKED_LIST_TXN(txn->parent_txn->children_dbs,db);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5876 db->txn=txn->parent_txn;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5877 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5878 /* The db is already linked to its environment,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5879 ** so nothing to do.
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5880 */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5881 db->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5882 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5883 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5884
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5885 #if (DBVER >= 43)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5886 while (txn->children_sequences) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5887 dbs=txn->children_sequences;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5888 EXTRACT_FROM_DOUBLE_LINKED_LIST_TXN(dbs);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5889 if (txn->parent_txn) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5890 INSERT_IN_DOUBLE_LINKED_LIST_TXN(txn->parent_txn->children_sequences,dbs);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5891 dbs->txn=txn->parent_txn;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5892 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5893 /* The sequence is already linked to its
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5894 ** parent db. Nothing to do.
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5895 */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5896 dbs->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5897 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5898 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5899 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5900 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5901
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5902
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5903 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5904 DBTxn_commit(DBTxnObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5905 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5906 int flags=0, err;
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5907 DB_TXN *txn;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5908
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5909 if (!PyArg_ParseTuple(args, "|i:commit", &flags))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5910 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5911
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5912 _close_transaction_cursors(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5913
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5914 if (!self->txn) {
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
5915 PyObject *t = Py_BuildValue("(is)", 0, "DBTxn must not be used "
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5916 "after txn_commit, txn_abort "
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5917 "or txn_discard");
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5918 if (t) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5919 PyErr_SetObject(DBError, t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5920 Py_DECREF(t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5921 }
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5922 return NULL;
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5923 }
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5924 self->flag_prepare=0;
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5925 txn = self->txn;
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5926 self->txn = NULL; /* this DB_TXN is no longer valid after this call */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5927
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5928 EXTRACT_FROM_DOUBLE_LINKED_LIST(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5929
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5930 MYDB_BEGIN_ALLOW_THREADS;
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5931 err = txn->commit(txn, flags);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5932 MYDB_END_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5933
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5934 _promote_transaction_dbs_and_sequences(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5935
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5936 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5937 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5938 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5939
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5940 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5941 DBTxn_prepare(DBTxnObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5942 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5943 int err;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5944 char* gid=NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5945 int gid_size=0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5946
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5947 if (!PyArg_ParseTuple(args, "s#:prepare", &gid, &gid_size))
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5948 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5949
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5950 if (gid_size != DB_XIDDATASIZE) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5951 PyErr_SetString(PyExc_TypeError,
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5952 "gid must be DB_XIDDATASIZE bytes long");
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5953 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5954 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5955
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5956 if (!self->txn) {
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
5957 PyObject *t = Py_BuildValue("(is)", 0,"DBTxn must not be used "
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5958 "after txn_commit, txn_abort "
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5959 "or txn_discard");
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5960 if (t) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5961 PyErr_SetObject(DBError, t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5962 Py_DECREF(t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5963 }
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5964 return NULL;
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5965 }
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5966 self->flag_prepare=1; /* Prepare state */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5967 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5968 err = self->txn->prepare(self->txn, (u_int8_t*)gid);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5969 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5970 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5971 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5972 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5973
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5974
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5975 static PyObject*
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5976 DBTxn_abort_discard_internal(DBTxnObject* self, int discard)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5977 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5978 PyObject *dummy;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5979 int err=0;
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5980 DB_TXN *txn;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
5981
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5982 if (!self->txn) {
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
5983 PyObject *t = Py_BuildValue("(is)", 0, "DBTxn must not be used "
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5984 "after txn_commit, txn_abort "
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5985 "or txn_discard");
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5986 if (t) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5987 PyErr_SetObject(DBError, t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5988 Py_DECREF(t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
5989 }
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5990 return NULL;
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5991 }
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5992 txn = self->txn;
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
5993 self->txn = NULL; /* this DB_TXN is no longer valid after this call */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5994
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5995 _close_transaction_cursors(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5996 #if (DBVER >= 43)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5997 while (self->children_sequences) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5998 dummy=DBSequence_close_internal(self->children_sequences,0,0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
5999 Py_XDECREF(dummy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6000 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6001 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6002 while (self->children_dbs) {
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6003 dummy=DB_close_internal(self->children_dbs, 0, 0);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6004 Py_XDECREF(dummy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6005 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6006
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6007 EXTRACT_FROM_DOUBLE_LINKED_LIST(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6008
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6009 MYDB_BEGIN_ALLOW_THREADS;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6010 if (discard) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6011 assert(!self->flag_prepare);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6012 err = txn->discard(txn,0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6013 } else {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6014 /*
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6015 ** If the transaction is in the "prepare" or "recover" state,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6016 ** we better do not implicitly abort it.
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6017 */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6018 if (!self->flag_prepare) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6019 err = txn->abort(txn);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6020 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6021 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6022 MYDB_END_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6023 RETURN_IF_ERR();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6024 RETURN_NONE();
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6025 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6026
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6027 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6028 DBTxn_abort(DBTxnObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6029 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6030 self->flag_prepare=0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6031 _close_transaction_cursors(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6032
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6033 return DBTxn_abort_discard_internal(self,0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6034 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6035
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6036 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6037 DBTxn_discard(DBTxnObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6038 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6039 self->flag_prepare=0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6040 _close_transaction_cursors(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6041
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6042 return DBTxn_abort_discard_internal(self,1);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6043 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6044
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6045
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6046 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6047 DBTxn_id(DBTxnObject* self)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6048 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6049 int id;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6050
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
6051 if (!self->txn) {
36888
7cf5d9ba5f97 Clean up _bsddb.c: add a couple dozen missing Py_DECREF()'s, a handful of
Thomas Wouters <thomas@python.org>
parents: 36876
diff changeset
6052 PyObject *t = Py_BuildValue("(is)", 0, "DBTxn must not be used "
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6053 "after txn_commit, txn_abort "
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6054 "or txn_discard");
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6055 if (t) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6056 PyErr_SetObject(DBError, t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6057 Py_DECREF(t);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6058 }
27273
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
6059 return NULL;
cda5ab625774 bugfix: disallow use of DB_TXN after commit() or abort(), prevents a
Gregory P. Smith <greg@mad-scientist.com>
parents: 26878
diff changeset
6060 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6061 MYDB_BEGIN_ALLOW_THREADS;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6062 id = self->txn->id(self->txn);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6063 MYDB_END_ALLOW_THREADS;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6064 return NUMBER_FromLong(id);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6065 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6066
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6067 #if (DBVER >= 43)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6068 /* --------------------------------------------------------------------- */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6069 /* DBSequence methods */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6070
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6071
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6072 static PyObject*
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6073 DBSequence_close_internal(DBSequenceObject* self, int flags, int do_not_close)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6074 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6075 int err=0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6076
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6077 if (self->sequence!=NULL) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6078 EXTRACT_FROM_DOUBLE_LINKED_LIST(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6079 if (self->txn) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6080 EXTRACT_FROM_DOUBLE_LINKED_LIST_TXN(self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6081 self->txn=NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6082 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6083
49282
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6084 /*
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6085 ** "do_not_close" is used to dispose all related objects in the
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6086 ** tree, without actually releasing the "root" object.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6087 ** This is done, for example, because function calls like
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6088 ** "DBSequence.remove()" implicitly close the underlying handle. So
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6089 ** the handle doesn't need to be closed, but related objects
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6090 ** must be cleaned up.
f3eb000487b9 Bugfix for issue3885 and 'DB.verify()' crash.
Jesus Cea <jcea@jcea.es>
parents: 48982
diff changeset
6091 */
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6092 if (!do_not_close) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6093 MYDB_BEGIN_ALLOW_THREADS
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6094 err = self->sequence->close(self->sequence, flags);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6095 MYDB_END_ALLOW_THREADS
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6096 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6097 self->sequence = NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6098
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6099 RETURN_IF_ERR();
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6100 }
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6101
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6102 RETURN_NONE();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6103 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6104
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6105 static PyObject*
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6106 DBSequence_close(DBSequenceObject* self, PyObject* args)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6107 {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6108 int flags=0;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6109 if (!PyArg_ParseTuple(args,"|i:close", &flags))
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6110 return NULL;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6111
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6112 return DBSequence_close_internal(self,flags,0);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6113 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6114
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6115 static PyObject*
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6116 DBSequence_get(DBSequenceObject* self, PyObject* args, PyObject* kwargs)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6117 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6118 int err, flags = 0;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6119 int delta = 1;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6120 db_seq_t value;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6121 PyObject *txnobj = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6122 DB_TXN *txn = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6123 static char* kwnames[] = {"delta", "txn", "flags", NULL };
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6124 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|iOi:get", kwnames, &delta, &txnobj, &flags))
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6125 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6126 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6127
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6128 if (!checkTxnObj(txnobj, &txn))
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6129 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6130
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6131 MYDB_BEGIN_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6132 err = self->sequence->get(self->sequence, txn, delta, &value, flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6133 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6134
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6135 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6136 return PyLong_FromLongLong(value);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6137 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6138
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6139 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6140 DBSequence_get_dbp(DBSequenceObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6141 {
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6142 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6143 Py_INCREF(self->mydb);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6144 return (PyObject* )self->mydb;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6145 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6146
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6147 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6148 DBSequence_get_key(DBSequenceObject* self)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6149 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6150 int err;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6151 DBT key;
43533
ca9b08e7dc23 Get rid of compiler warning about retval being used (returned) without
Neal Norwitz <nnorwitz@gmail.com>
parents: 43505
diff changeset
6152 PyObject *retval = NULL;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6153
43476
68fc107ddb50 Stab in the dark attempt to fix the test_bsddb3 failure on sparc and S-390
Gregory P. Smith <greg@mad-scientist.com>
parents: 43298
diff changeset
6154 key.flags = DB_DBT_MALLOC;
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6155 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6156 MYDB_BEGIN_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6157 err = self->sequence->get_key(self->sequence, &key);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6158 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6159
43476
68fc107ddb50 Stab in the dark attempt to fix the test_bsddb3 failure on sparc and S-390
Gregory P. Smith <greg@mad-scientist.com>
parents: 43298
diff changeset
6160 if (!err)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6161 retval = Build_PyString(key.data, key.size);
43476
68fc107ddb50 Stab in the dark attempt to fix the test_bsddb3 failure on sparc and S-390
Gregory P. Smith <greg@mad-scientist.com>
parents: 43298
diff changeset
6162
68fc107ddb50 Stab in the dark attempt to fix the test_bsddb3 failure on sparc and S-390
Gregory P. Smith <greg@mad-scientist.com>
parents: 43298
diff changeset
6163 FREE_DBT(key);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6164 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6165
43476
68fc107ddb50 Stab in the dark attempt to fix the test_bsddb3 failure on sparc and S-390
Gregory P. Smith <greg@mad-scientist.com>
parents: 43298
diff changeset
6166 return retval;
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6167 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6168
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6169 static PyObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6170 DBSequence_init_value(DBSequenceObject* self, PyObject* args)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6171 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6172 int err;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6173 PY_LONG_LONG value;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6174 db_seq_t value2;
38624
828c106d5ecc Fix a bunch of parameter strings
Neal Norwitz <nnorwitz@gmail.com>
parents: 38620
diff changeset
6175 if (!PyArg_ParseTuple(args,"L:init_value", &value))
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6176 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6177 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6178
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6179 value2=value; /* If truncation, compiler should show a warning */
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6180 MYDB_BEGIN_ALLOW_THREADS
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6181 err = self->sequence->initial_value(self->sequence, value2);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6182 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6183
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6184 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6185
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6186 RETURN_NONE();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6187 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6188
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6189 static PyObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6190 DBSequence_open(DBSequenceObject* self, PyObject* args, PyObject* kwargs)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6191 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6192 int err, flags = 0;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6193 PyObject* keyobj;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6194 PyObject *txnobj = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6195 DB_TXN *txn = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6196 DBT key;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6197
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6198 static char* kwnames[] = {"key", "txn", "flags", NULL };
38624
828c106d5ecc Fix a bunch of parameter strings
Neal Norwitz <nnorwitz@gmail.com>
parents: 38620
diff changeset
6199 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|Oi:open", kwnames, &keyobj, &txnobj, &flags))
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6200 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6201
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6202 if (!checkTxnObj(txnobj, &txn))
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6203 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6204
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6205 if (!make_key_dbt(self->mydb, keyobj, &key, NULL))
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6206 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6207
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6208 MYDB_BEGIN_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6209 err = self->sequence->open(self->sequence, txn, &key, flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6210 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6211
48982
b9ed14eb9e87 Fix some leaks - Neal Norwitz
Jesus Cea <jcea@jcea.es>
parents: 48910
diff changeset
6212 FREE_DBT(key);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6213 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6214
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6215 if (txn) {
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6216 INSERT_IN_DOUBLE_LINKED_LIST_TXN(((DBTxnObject *)txnobj)->children_sequences,self);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6217 self->txn=(DBTxnObject *)txnobj;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6218 }
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6219
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6220 RETURN_NONE();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6221 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6222
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6223 static PyObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6224 DBSequence_remove(DBSequenceObject* self, PyObject* args, PyObject* kwargs)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6225 {
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6226 PyObject *dummy;
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6227 int err, flags = 0;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6228 PyObject *txnobj = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6229 DB_TXN *txn = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6230
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6231 static char* kwnames[] = {"txn", "flags", NULL };
38624
828c106d5ecc Fix a bunch of parameter strings
Neal Norwitz <nnorwitz@gmail.com>
parents: 38620
diff changeset
6232 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:remove", kwnames, &txnobj, &flags))
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6233 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6234
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6235 if (!checkTxnObj(txnobj, &txn))
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6236 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6237
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6238 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6239
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6240 MYDB_BEGIN_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6241 err = self->sequence->remove(self->sequence, txn, flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6242 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6243
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6244 dummy=DBSequence_close_internal(self,flags,1);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6245 Py_XDECREF(dummy);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6246
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6247 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6248 RETURN_NONE();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6249 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6250
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6251 static PyObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6252 DBSequence_set_cachesize(DBSequenceObject* self, PyObject* args)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6253 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6254 int err, size;
38624
828c106d5ecc Fix a bunch of parameter strings
Neal Norwitz <nnorwitz@gmail.com>
parents: 38620
diff changeset
6255 if (!PyArg_ParseTuple(args,"i:set_cachesize", &size))
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6256 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6257 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6258
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6259 MYDB_BEGIN_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6260 err = self->sequence->set_cachesize(self->sequence, size);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6261 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6262
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6263 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6264 RETURN_NONE();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6265 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6266
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6267 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6268 DBSequence_get_cachesize(DBSequenceObject* self)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6269 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6270 int err, size;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6271
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6272 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6273
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6274 MYDB_BEGIN_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6275 err = self->sequence->get_cachesize(self->sequence, &size);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6276 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6277
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6278 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6279 return NUMBER_FromLong(size);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6280 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6281
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6282 static PyObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6283 DBSequence_set_flags(DBSequenceObject* self, PyObject* args)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6284 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6285 int err, flags = 0;
38624
828c106d5ecc Fix a bunch of parameter strings
Neal Norwitz <nnorwitz@gmail.com>
parents: 38620
diff changeset
6286 if (!PyArg_ParseTuple(args,"i:set_flags", &flags))
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6287 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6288 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6289
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6290 MYDB_BEGIN_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6291 err = self->sequence->set_flags(self->sequence, flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6292 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6293
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6294 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6295 RETURN_NONE();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6296 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6297
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6298 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6299 DBSequence_get_flags(DBSequenceObject* self)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6300 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6301 unsigned int flags;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6302 int err;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6303
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6304 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6305
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6306 MYDB_BEGIN_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6307 err = self->sequence->get_flags(self->sequence, &flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6308 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6309
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6310 RETURN_IF_ERR();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6311 return NUMBER_FromLong((int)flags);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6312 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6313
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6314 static PyObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6315 DBSequence_set_range(DBSequenceObject* self, PyObject* args)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6316 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6317 int err;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6318 PY_LONG_LONG min, max;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6319 db_seq_t min2, max2;
38629
c989fafff3dc BSequence_set_range(): Rev 46688 ("Fix a bunch of
Tim Peters <tim.peters@gmail.com>
parents: 38624
diff changeset
6320 if (!PyArg_ParseTuple(args,"(LL):set_range", &min, &max))
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6321 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6322 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6323
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6324 min2=min; /* If truncation, compiler should show a warning */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6325 max2=max;
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6326 MYDB_BEGIN_ALLOW_THREADS
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6327 err = self->sequence->set_range(self->sequence, min2, max2);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6328 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6329
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6330 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6331 RETURN_NONE();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6332 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6333
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6334 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6335 DBSequence_get_range(DBSequenceObject* self)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6336 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6337 int err;
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6338 PY_LONG_LONG min, max;
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6339 db_seq_t min2, max2;
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6340
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6341 CHECK_SEQUENCE_NOT_CLOSED(self)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6342
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6343 MYDB_BEGIN_ALLOW_THREADS
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6344 err = self->sequence->get_range(self->sequence, &min2, &max2);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6345 MYDB_END_ALLOW_THREADS
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6346
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6347 RETURN_IF_ERR();
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6348 min=min2; /* If truncation, compiler should show a warning */
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6349 max=max2;
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6350 return Py_BuildValue("(LL)", min, max);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6351 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6352
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6353 static PyObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6354 DBSequence_stat(DBSequenceObject* self, PyObject* args, PyObject* kwargs)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6355 {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6356 int err, flags = 0;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6357 DB_SEQUENCE_STAT* sp = NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6358 PyObject* dict_stat;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6359 static char* kwnames[] = {"flags", NULL };
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6360 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|i:stat", kwnames, &flags))
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6361 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6362 CHECK_SEQUENCE_NOT_CLOSED(self);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6363
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6364 MYDB_BEGIN_ALLOW_THREADS;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6365 err = self->sequence->stat(self->sequence, &sp, flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6366 MYDB_END_ALLOW_THREADS;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6367 RETURN_IF_ERR();
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6368
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6369 if ((dict_stat = PyDict_New()) == NULL) {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6370 free(sp);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6371 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6372 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6373
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6374
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6375 #define MAKE_INT_ENTRY(name) _addIntToDict(dict_stat, #name, sp->st_##name)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6376 #define MAKE_LONG_LONG_ENTRY(name) _addDb_seq_tToDict(dict_stat, #name, sp->st_##name)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6377
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6378 MAKE_INT_ENTRY(wait);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6379 MAKE_INT_ENTRY(nowait);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6380 MAKE_LONG_LONG_ENTRY(current);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6381 MAKE_LONG_LONG_ENTRY(value);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6382 MAKE_LONG_LONG_ENTRY(last_value);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6383 MAKE_LONG_LONG_ENTRY(min);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6384 MAKE_LONG_LONG_ENTRY(max);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6385 MAKE_INT_ENTRY(cache_size);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6386 MAKE_INT_ENTRY(flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6387
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6388 #undef MAKE_INT_ENTRY
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6389 #undef MAKE_LONG_LONG_ENTRY
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6390
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6391 free(sp);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6392 return dict_stat;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6393 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6394 #endif
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6395
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6396
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6397 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6398 /* Method definition tables and type objects */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6399
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6400 static PyMethodDef DB_methods[] = {
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
6401 {"append", (PyCFunction)DB_append, METH_VARARGS|METH_KEYWORDS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6402 {"associate", (PyCFunction)DB_associate, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6403 {"close", (PyCFunction)DB_close, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6404 {"consume", (PyCFunction)DB_consume, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6405 {"consume_wait", (PyCFunction)DB_consume_wait, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6406 {"cursor", (PyCFunction)DB_cursor, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6407 {"delete", (PyCFunction)DB_delete, METH_VARARGS|METH_KEYWORDS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6408 {"fd", (PyCFunction)DB_fd, METH_NOARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6409 {"get", (PyCFunction)DB_get, METH_VARARGS|METH_KEYWORDS},
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
6410 {"pget", (PyCFunction)DB_pget, METH_VARARGS|METH_KEYWORDS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6411 {"get_both", (PyCFunction)DB_get_both, METH_VARARGS|METH_KEYWORDS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6412 {"get_byteswapped", (PyCFunction)DB_get_byteswapped,METH_NOARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6413 {"get_size", (PyCFunction)DB_get_size, METH_VARARGS|METH_KEYWORDS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6414 {"get_type", (PyCFunction)DB_get_type, METH_NOARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6415 {"join", (PyCFunction)DB_join, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6416 {"key_range", (PyCFunction)DB_key_range, METH_VARARGS|METH_KEYWORDS},
48910
81a1a1545172 Update bsddb code to version 4.7.3pre2. This code should
Jesus Cea <jcea@jcea.es>
parents: 48054
diff changeset
6417 {"has_key", (PyCFunction)DB_has_key, METH_VARARGS|METH_KEYWORDS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6418 {"items", (PyCFunction)DB_items, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6419 {"keys", (PyCFunction)DB_keys, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6420 {"open", (PyCFunction)DB_open, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6421 {"put", (PyCFunction)DB_put, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6422 {"remove", (PyCFunction)DB_remove, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6423 {"rename", (PyCFunction)DB_rename, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6424 {"set_bt_minkey", (PyCFunction)DB_set_bt_minkey, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6425 {"set_bt_compare", (PyCFunction)DB_set_bt_compare, METH_O},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6426 {"set_cachesize", (PyCFunction)DB_set_cachesize, METH_VARARGS},
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6427 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6428 {"set_encrypt", (PyCFunction)DB_set_encrypt, METH_VARARGS|METH_KEYWORDS},
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6429 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6430 {"set_flags", (PyCFunction)DB_set_flags, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6431 {"set_h_ffactor", (PyCFunction)DB_set_h_ffactor, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6432 {"set_h_nelem", (PyCFunction)DB_set_h_nelem, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6433 {"set_lorder", (PyCFunction)DB_set_lorder, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6434 {"set_pagesize", (PyCFunction)DB_set_pagesize, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6435 {"set_re_delim", (PyCFunction)DB_set_re_delim, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6436 {"set_re_len", (PyCFunction)DB_set_re_len, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6437 {"set_re_pad", (PyCFunction)DB_set_re_pad, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6438 {"set_re_source", (PyCFunction)DB_set_re_source, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6439 {"set_q_extentsize",(PyCFunction)DB_set_q_extentsize, METH_VARARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6440 {"set_private", (PyCFunction)DB_set_private, METH_O},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6441 {"get_private", (PyCFunction)DB_get_private, METH_NOARGS},
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
6442 {"stat", (PyCFunction)DB_stat, METH_VARARGS|METH_KEYWORDS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6443 {"sync", (PyCFunction)DB_sync, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6444 {"truncate", (PyCFunction)DB_truncate, METH_VARARGS|METH_KEYWORDS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6445 {"type", (PyCFunction)DB_get_type, METH_NOARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6446 {"upgrade", (PyCFunction)DB_upgrade, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6447 {"values", (PyCFunction)DB_values, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6448 {"verify", (PyCFunction)DB_verify, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6449 {"set_get_returns_none",(PyCFunction)DB_set_get_returns_none, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6450 {NULL, NULL} /* sentinel */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6451 };
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6452
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6453
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6454 static PyMappingMethods DB_mapping = {
38773
d5771a389b8e Get rid of function pointer cast.
Martin v. Löwis <martin@v.loewis.de>
parents: 38758
diff changeset
6455 DB_length, /*mp_length*/
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6456 (binaryfunc)DB_subscript, /*mp_subscript*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6457 (objobjargproc)DB_ass_sub, /*mp_ass_subscript*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6458 };
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6459
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6460
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6461 static PyMethodDef DBCursor_methods[] = {
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6462 {"close", (PyCFunction)DBC_close, METH_NOARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6463 {"count", (PyCFunction)DBC_count, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6464 {"current", (PyCFunction)DBC_current, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6465 {"delete", (PyCFunction)DBC_delete, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6466 {"dup", (PyCFunction)DBC_dup, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6467 {"first", (PyCFunction)DBC_first, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6468 {"get", (PyCFunction)DBC_get, METH_VARARGS|METH_KEYWORDS},
32431
c7d2b24eeff9 Adds support for DB.pget and DBCursor.pget methods.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32430
diff changeset
6469 {"pget", (PyCFunction)DBC_pget, METH_VARARGS|METH_KEYWORDS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6470 {"get_recno", (PyCFunction)DBC_get_recno, METH_NOARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6471 {"last", (PyCFunction)DBC_last, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6472 {"next", (PyCFunction)DBC_next, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6473 {"prev", (PyCFunction)DBC_prev, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6474 {"put", (PyCFunction)DBC_put, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6475 {"set", (PyCFunction)DBC_set, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6476 {"set_range", (PyCFunction)DBC_set_range, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6477 {"get_both", (PyCFunction)DBC_get_both, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6478 {"get_current_size",(PyCFunction)DBC_get_current_size, METH_NOARGS},
29789
defa1d825b08 bsddb 4.1.6:
Gregory P. Smith <greg@mad-scientist.com>
parents: 29771
diff changeset
6479 {"set_both", (PyCFunction)DBC_set_both, METH_VARARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6480 {"set_recno", (PyCFunction)DBC_set_recno, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6481 {"consume", (PyCFunction)DBC_consume, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6482 {"next_dup", (PyCFunction)DBC_next_dup, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6483 {"next_nodup", (PyCFunction)DBC_next_nodup, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6484 {"prev_nodup", (PyCFunction)DBC_prev_nodup, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6485 {"join_item", (PyCFunction)DBC_join_item, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6486 {NULL, NULL} /* sentinel */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6487 };
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6488
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6489
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6490 static PyMethodDef DBEnv_methods[] = {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6491 {"close", (PyCFunction)DBEnv_close, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6492 {"open", (PyCFunction)DBEnv_open, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6493 {"remove", (PyCFunction)DBEnv_remove, METH_VARARGS},
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6494 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6495 {"dbremove", (PyCFunction)DBEnv_dbremove, METH_VARARGS|METH_KEYWORDS},
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6496 {"dbrename", (PyCFunction)DBEnv_dbrename, METH_VARARGS|METH_KEYWORDS},
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6497 {"set_encrypt", (PyCFunction)DBEnv_set_encrypt, METH_VARARGS|METH_KEYWORDS},
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6498 #endif
28415
5496b861c89a Adds support for the DBEnv->set_timeout() method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 27624
diff changeset
6499 {"set_timeout", (PyCFunction)DBEnv_set_timeout, METH_VARARGS|METH_KEYWORDS},
30227
c30ed13d3582 Support DBEnv.set_shm_key() to allow multi-threaded multi-process
Gregory P. Smith <greg@mad-scientist.com>
parents: 29868
diff changeset
6500 {"set_shm_key", (PyCFunction)DBEnv_set_shm_key, METH_VARARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6501 {"set_cachesize", (PyCFunction)DBEnv_set_cachesize, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6502 {"set_data_dir", (PyCFunction)DBEnv_set_data_dir, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6503 {"set_flags", (PyCFunction)DBEnv_set_flags, METH_VARARGS},
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
6504 #if (DBVER >= 47)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
6505 {"log_set_config", (PyCFunction)DBEnv_log_set_config, METH_VARARGS},
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
6506 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6507 {"set_lg_bsize", (PyCFunction)DBEnv_set_lg_bsize, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6508 {"set_lg_dir", (PyCFunction)DBEnv_set_lg_dir, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6509 {"set_lg_max", (PyCFunction)DBEnv_set_lg_max, METH_VARARGS},
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6510 #if (DBVER >= 42)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6511 {"get_lg_max", (PyCFunction)DBEnv_get_lg_max, METH_NOARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6512 #endif
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
6513 {"set_lg_regionmax",(PyCFunction)DBEnv_set_lg_regionmax, METH_VARARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6514 {"set_lk_detect", (PyCFunction)DBEnv_set_lk_detect, METH_VARARGS},
40544
f9b27820798b Support linking of the bsddb module against BerkeleyDB 4.5.x
Gregory P. Smith <greg@mad-scientist.com>
parents: 40373
diff changeset
6515 #if (DBVER < 45)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6516 {"set_lk_max", (PyCFunction)DBEnv_set_lk_max, METH_VARARGS},
40544
f9b27820798b Support linking of the bsddb module against BerkeleyDB 4.5.x
Gregory P. Smith <greg@mad-scientist.com>
parents: 40373
diff changeset
6517 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6518 {"set_lk_max_locks", (PyCFunction)DBEnv_set_lk_max_locks, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6519 {"set_lk_max_lockers", (PyCFunction)DBEnv_set_lk_max_lockers, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6520 {"set_lk_max_objects", (PyCFunction)DBEnv_set_lk_max_objects, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6521 {"set_mp_mmapsize", (PyCFunction)DBEnv_set_mp_mmapsize, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6522 {"set_tmp_dir", (PyCFunction)DBEnv_set_tmp_dir, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6523 {"txn_begin", (PyCFunction)DBEnv_txn_begin, METH_VARARGS|METH_KEYWORDS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6524 {"txn_checkpoint", (PyCFunction)DBEnv_txn_checkpoint, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6525 {"txn_stat", (PyCFunction)DBEnv_txn_stat, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6526 {"set_tx_max", (PyCFunction)DBEnv_set_tx_max, METH_VARARGS},
36416
0602887dadf5 Add wrapper for DBEnv.set_tx_timeout method to allow time based DB_RECOVER
Gregory P. Smith <greg@mad-scientist.com>
parents: 36404
diff changeset
6527 {"set_tx_timestamp", (PyCFunction)DBEnv_set_tx_timestamp, METH_VARARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6528 {"lock_detect", (PyCFunction)DBEnv_lock_detect, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6529 {"lock_get", (PyCFunction)DBEnv_lock_get, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6530 {"lock_id", (PyCFunction)DBEnv_lock_id, METH_NOARGS},
43767
8d4e9c4f0350 Add the bsddb.db.DBEnv.lock_id_free method.
Gregory P. Smith <greg@mad-scientist.com>
parents: 43766
diff changeset
6531 {"lock_id_free", (PyCFunction)DBEnv_lock_id_free, METH_VARARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6532 {"lock_put", (PyCFunction)DBEnv_lock_put, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6533 {"lock_stat", (PyCFunction)DBEnv_lock_stat, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6534 {"log_archive", (PyCFunction)DBEnv_log_archive, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6535 {"log_flush", (PyCFunction)DBEnv_log_flush, METH_NOARGS},
38600
c908aaa91eae * support DBEnv.log_stat() method on BerkeleyDB >= 4.0 [patch #1494885]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38595
diff changeset
6536 {"log_stat", (PyCFunction)DBEnv_log_stat, METH_VARARGS},
38604
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
6537 #if (DBVER >= 44)
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
6538 {"lsn_reset", (PyCFunction)DBEnv_lsn_reset, METH_VARARGS|METH_KEYWORDS},
a4b58ab65202 * support DBEnv.lsn_reset() method on BerkeleyDB >= 4.4 [patch #1494902]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38600
diff changeset
6539 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6540 {"set_get_returns_none",(PyCFunction)DBEnv_set_get_returns_none, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6541 {"txn_recover", (PyCFunction)DBEnv_txn_recover, METH_NOARGS},
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
6542 {"set_rpc_server", (PyCFunction)DBEnv_set_rpc_server,
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
6543 METH_VARARGS||METH_KEYWORDS},
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6544 {"set_verbose", (PyCFunction)DBEnv_set_verbose, METH_VARARGS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6545 #if (DBVER >= 42)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6546 {"get_verbose", (PyCFunction)DBEnv_get_verbose, METH_VARARGS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6547 #endif
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6548 {"set_private", (PyCFunction)DBEnv_set_private, METH_O},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6549 {"get_private", (PyCFunction)DBEnv_get_private, METH_NOARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6550 {"rep_start", (PyCFunction)DBEnv_rep_start,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6551 METH_VARARGS|METH_KEYWORDS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6552 {"rep_set_transport", (PyCFunction)DBEnv_rep_set_transport, METH_VARARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6553 {"rep_process_message", (PyCFunction)DBEnv_rep_process_message,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6554 METH_VARARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6555 #if (DBVER >= 46)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6556 {"rep_elect", (PyCFunction)DBEnv_rep_elect, METH_VARARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6557 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6558 #if (DBVER >= 44)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6559 {"rep_set_config", (PyCFunction)DBEnv_rep_set_config, METH_VARARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6560 {"rep_get_config", (PyCFunction)DBEnv_rep_get_config, METH_VARARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6561 {"rep_sync", (PyCFunction)DBEnv_rep_sync, METH_NOARGS},
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6562 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6563 #if (DBVER >= 45)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6564 {"rep_set_limit", (PyCFunction)DBEnv_rep_set_limit, METH_VARARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6565 {"rep_get_limit", (PyCFunction)DBEnv_rep_get_limit, METH_NOARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6566 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6567 #if (DBVER >= 47)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6568 {"rep_set_request", (PyCFunction)DBEnv_rep_set_request, METH_VARARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6569 {"rep_get_request", (PyCFunction)DBEnv_rep_get_request, METH_NOARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6570 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6571 #if (DBVER >= 45)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6572 {"set_event_notify", (PyCFunction)DBEnv_set_event_notify, METH_O},
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6573 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6574 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6575 {"rep_set_nsites", (PyCFunction)DBEnv_rep_set_nsites, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6576 {"rep_get_nsites", (PyCFunction)DBEnv_rep_get_nsites, METH_NOARGS},
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6577 {"rep_set_priority", (PyCFunction)DBEnv_rep_set_priority, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6578 {"rep_get_priority", (PyCFunction)DBEnv_rep_get_priority, METH_NOARGS},
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6579 {"rep_set_timeout", (PyCFunction)DBEnv_rep_set_timeout, METH_VARARGS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6580 {"rep_get_timeout", (PyCFunction)DBEnv_rep_get_timeout, METH_VARARGS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6581 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6582 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6583 {"repmgr_start", (PyCFunction)DBEnv_repmgr_start,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6584 METH_VARARGS|METH_KEYWORDS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6585 {"repmgr_set_local_site", (PyCFunction)DBEnv_repmgr_set_local_site,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6586 METH_VARARGS|METH_KEYWORDS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6587 {"repmgr_add_remote_site", (PyCFunction)DBEnv_repmgr_add_remote_site,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6588 METH_VARARGS|METH_KEYWORDS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6589 {"repmgr_set_ack_policy", (PyCFunction)DBEnv_repmgr_set_ack_policy,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6590 METH_VARARGS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6591 {"repmgr_get_ack_policy", (PyCFunction)DBEnv_repmgr_get_ack_policy,
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6592 METH_NOARGS},
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6593 {"repmgr_site_list", (PyCFunction)DBEnv_repmgr_site_list,
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6594 METH_NOARGS},
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6595 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6596 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6597 {"repmgr_stat", (PyCFunction)DBEnv_repmgr_stat,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6598 METH_VARARGS|METH_KEYWORDS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6599 {"repmgr_stat_print", (PyCFunction)DBEnv_repmgr_stat_print,
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6600 METH_VARARGS|METH_KEYWORDS},
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6601 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6602 {NULL, NULL} /* sentinel */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6603 };
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6604
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6605
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6606 static PyMethodDef DBTxn_methods[] = {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6607 {"commit", (PyCFunction)DBTxn_commit, METH_VARARGS},
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6608 {"prepare", (PyCFunction)DBTxn_prepare, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6609 {"discard", (PyCFunction)DBTxn_discard, METH_NOARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6610 {"abort", (PyCFunction)DBTxn_abort, METH_NOARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6611 {"id", (PyCFunction)DBTxn_id, METH_NOARGS},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6612 {NULL, NULL} /* sentinel */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6613 };
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6614
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6615
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6616 #if (DBVER >= 43)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6617 static PyMethodDef DBSequence_methods[] = {
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6618 {"close", (PyCFunction)DBSequence_close, METH_VARARGS},
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6619 {"get", (PyCFunction)DBSequence_get, METH_VARARGS|METH_KEYWORDS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6620 {"get_dbp", (PyCFunction)DBSequence_get_dbp, METH_NOARGS},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6621 {"get_key", (PyCFunction)DBSequence_get_key, METH_NOARGS},
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6622 {"init_value", (PyCFunction)DBSequence_init_value, METH_VARARGS},
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6623 {"open", (PyCFunction)DBSequence_open, METH_VARARGS|METH_KEYWORDS},
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6624 {"remove", (PyCFunction)DBSequence_remove, METH_VARARGS|METH_KEYWORDS},
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6625 {"set_cachesize", (PyCFunction)DBSequence_set_cachesize, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6626 {"get_cachesize", (PyCFunction)DBSequence_get_cachesize, METH_NOARGS},
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6627 {"set_flags", (PyCFunction)DBSequence_set_flags, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6628 {"get_flags", (PyCFunction)DBSequence_get_flags, METH_NOARGS},
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6629 {"set_range", (PyCFunction)DBSequence_set_range, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6630 {"get_range", (PyCFunction)DBSequence_get_range, METH_NOARGS},
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6631 {"stat", (PyCFunction)DBSequence_stat, METH_VARARGS|METH_KEYWORDS},
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6632 {NULL, NULL} /* sentinel */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6633 };
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6634 #endif
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6635
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6636
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6637 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6638 DBEnv_db_home_get(DBEnvObject* self)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6639 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6640 const char *home = NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6641
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6642 CHECK_ENV_NOT_CLOSED(self);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6643
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6644 #if (DBVER >= 42)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6645 self->db_env->get_home(self->db_env, &home);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
6646 #else
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6647 home=self->db_env->db_home;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6648 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6649
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6650 if (home == NULL) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6651 RETURN_NONE();
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6652 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6653 return PyBytes_FromString(home);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6654 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6655
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6656 static PyGetSetDef DBEnv_getsets[] = {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6657 {"db_home", (getter)DBEnv_db_home_get, NULL,},
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6658 {NULL}
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6659 };
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6660
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6661
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6662 statichere PyTypeObject DB_Type = {
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6663 #if (PY_VERSION_HEX < 0x03000000)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6664 PyObject_HEAD_INIT(NULL)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6665 0, /*ob_size*/
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6666 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6667 PyVarObject_HEAD_INIT(NULL, 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6668 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6669 "DB", /*tp_name*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6670 sizeof(DBObject), /*tp_basicsize*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6671 0, /*tp_itemsize*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6672 /* methods */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6673 (destructor)DB_dealloc, /*tp_dealloc*/
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6674 0, /*tp_print*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6675 0, /*tp_getattr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6676 0, /*tp_setattr*/
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6677 0, /*tp_compare*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6678 0, /*tp_repr*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6679 0, /*tp_as_number*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6680 0, /*tp_as_sequence*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6681 &DB_mapping,/*tp_as_mapping*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6682 0, /*tp_hash*/
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6683 0, /* tp_call */
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6684 0, /* tp_str */
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6685 0, /* tp_getattro */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6686 0, /* tp_setattro */
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6687 0, /* tp_as_buffer */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6688 #if (PY_VERSION_HEX < 0x03000000)
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6689 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_WEAKREFS, /* tp_flags */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6690 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6691 Py_TPFLAGS_DEFAULT, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6692 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6693 0, /* tp_doc */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6694 0, /* tp_traverse */
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6695 0, /* tp_clear */
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6696 0, /* tp_richcompare */
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6697 offsetof(DBObject, in_weakreflist), /* tp_weaklistoffset */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6698 0, /*tp_iter*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6699 0, /*tp_iternext*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6700 DB_methods, /*tp_methods*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6701 0, /*tp_members*/
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6702 };
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6703
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6704
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6705 statichere PyTypeObject DBCursor_Type = {
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6706 #if (PY_VERSION_HEX < 0x03000000)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6707 PyObject_HEAD_INIT(NULL)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6708 0, /*ob_size*/
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6709 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6710 PyVarObject_HEAD_INIT(NULL, 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6711 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6712 "DBCursor", /*tp_name*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6713 sizeof(DBCursorObject), /*tp_basicsize*/
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6714 0, /*tp_itemsize*/
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6715 /* methods */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6716 (destructor)DBCursor_dealloc,/*tp_dealloc*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6717 0, /*tp_print*/
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6718 0, /*tp_getattr*/
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6719 0, /*tp_setattr*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6720 0, /*tp_compare*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6721 0, /*tp_repr*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6722 0, /*tp_as_number*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6723 0, /*tp_as_sequence*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6724 0, /*tp_as_mapping*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6725 0, /*tp_hash*/
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6726 0, /*tp_call*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6727 0, /*tp_str*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6728 0, /*tp_getattro*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6729 0, /*tp_setattro*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6730 0, /*tp_as_buffer*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6731 #if (PY_VERSION_HEX < 0x03000000)
32430
48ca27ada81e Add weakref support to all bsddb.db objects.
Gregory P. Smith <greg@mad-scientist.com>
parents: 32427
diff changeset
6732 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_WEAKREFS, /* tp_flags */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6733 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6734 Py_TPFLAGS_DEFAULT, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6735 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6736 0, /* tp_doc */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6737 0, /* tp_traverse */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6738 0, /* tp_clear */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6739 0, /* tp_richcompare */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6740 offsetof(DBCursorObject, in_weakreflist), /* tp_weaklistoffset */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6741 0, /*tp_iter*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6742 0, /*tp_iternext*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6743 DBCursor_methods, /*tp_methods*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6744 0, /*tp_members*/
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6745 };
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6746
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6747
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6748 statichere PyTypeObject DBEnv_Type = {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6749 #if (PY_VERSION_HEX < 0x03000000)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6750 PyObject_HEAD_INIT(NULL)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6751 0, /*ob_size*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6752 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6753 PyVarObject_HEAD_INIT(NULL, 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6754 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6755 "DBEnv", /*tp_name*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6756 sizeof(DBEnvObject), /*tp_basicsize*/
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6757 0, /*tp_itemsize*/
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6758 /* methods */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6759 (destructor)DBEnv_dealloc, /*tp_dealloc*/
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6760 0, /*tp_print*/
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6761 0, /*tp_getattr*/
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6762 0, /*tp_setattr*/
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6763 0, /*tp_compare*/
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6764 0, /*tp_repr*/
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6765 0, /*tp_as_number*/
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6766 0, /*tp_as_sequence*/
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6767 0, /*tp_as_mapping*/
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6768 0, /*tp_hash*/
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6769 0, /* tp_call */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6770 0, /* tp_str */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6771 0, /* tp_getattro */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6772 0, /* tp_setattro */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6773 0, /* tp_as_buffer */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6774 #if (PY_VERSION_HEX < 0x03000000)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6775 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_WEAKREFS, /* tp_flags */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6776 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6777 Py_TPFLAGS_DEFAULT, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6778 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6779 0, /* tp_doc */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6780 0, /* tp_traverse */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6781 0, /* tp_clear */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6782 0, /* tp_richcompare */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6783 offsetof(DBEnvObject, in_weakreflist), /* tp_weaklistoffset */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6784 0, /* tp_iter */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6785 0, /* tp_iternext */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6786 DBEnv_methods, /* tp_methods */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6787 0, /* tp_members */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6788 DBEnv_getsets, /* tp_getsets */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6789 };
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6790
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6791 statichere PyTypeObject DBTxn_Type = {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6792 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6793 PyObject_HEAD_INIT(NULL)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6794 0, /*ob_size*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6795 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6796 PyVarObject_HEAD_INIT(NULL, 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6797 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6798 "DBTxn", /*tp_name*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6799 sizeof(DBTxnObject), /*tp_basicsize*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6800 0, /*tp_itemsize*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6801 /* methods */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6802 (destructor)DBTxn_dealloc, /*tp_dealloc*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6803 0, /*tp_print*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6804 0, /*tp_getattr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6805 0, /*tp_setattr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6806 0, /*tp_compare*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6807 0, /*tp_repr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6808 0, /*tp_as_number*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6809 0, /*tp_as_sequence*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6810 0, /*tp_as_mapping*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6811 0, /*tp_hash*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6812 0, /* tp_call */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6813 0, /* tp_str */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6814 0, /* tp_getattro */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6815 0, /* tp_setattro */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6816 0, /* tp_as_buffer */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6817 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6818 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_WEAKREFS, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6819 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6820 Py_TPFLAGS_DEFAULT, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6821 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6822 0, /* tp_doc */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6823 0, /* tp_traverse */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6824 0, /* tp_clear */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6825 0, /* tp_richcompare */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6826 offsetof(DBTxnObject, in_weakreflist), /* tp_weaklistoffset */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6827 0, /*tp_iter*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6828 0, /*tp_iternext*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6829 DBTxn_methods, /*tp_methods*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6830 0, /*tp_members*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6831 };
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6832
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6833
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6834 statichere PyTypeObject DBLock_Type = {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6835 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6836 PyObject_HEAD_INIT(NULL)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6837 0, /*ob_size*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6838 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6839 PyVarObject_HEAD_INIT(NULL, 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6840 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6841 "DBLock", /*tp_name*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6842 sizeof(DBLockObject), /*tp_basicsize*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6843 0, /*tp_itemsize*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6844 /* methods */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6845 (destructor)DBLock_dealloc, /*tp_dealloc*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6846 0, /*tp_print*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6847 0, /*tp_getattr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6848 0, /*tp_setattr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6849 0, /*tp_compare*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6850 0, /*tp_repr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6851 0, /*tp_as_number*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6852 0, /*tp_as_sequence*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6853 0, /*tp_as_mapping*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6854 0, /*tp_hash*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6855 0, /* tp_call */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6856 0, /* tp_str */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6857 0, /* tp_getattro */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6858 0, /* tp_setattro */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6859 0, /* tp_as_buffer */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6860 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6861 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_WEAKREFS, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6862 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6863 Py_TPFLAGS_DEFAULT, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6864 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6865 0, /* tp_doc */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6866 0, /* tp_traverse */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6867 0, /* tp_clear */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6868 0, /* tp_richcompare */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6869 offsetof(DBLockObject, in_weakreflist), /* tp_weaklistoffset */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6870 };
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6871
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6872 #if (DBVER >= 43)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6873 statichere PyTypeObject DBSequence_Type = {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6874 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6875 PyObject_HEAD_INIT(NULL)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6876 0, /*ob_size*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6877 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6878 PyVarObject_HEAD_INIT(NULL, 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6879 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6880 "DBSequence", /*tp_name*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6881 sizeof(DBSequenceObject), /*tp_basicsize*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6882 0, /*tp_itemsize*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6883 /* methods */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6884 (destructor)DBSequence_dealloc, /*tp_dealloc*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6885 0, /*tp_print*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6886 0, /*tp_getattr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6887 0, /*tp_setattr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6888 0, /*tp_compare*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6889 0, /*tp_repr*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6890 0, /*tp_as_number*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6891 0, /*tp_as_sequence*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6892 0, /*tp_as_mapping*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6893 0, /*tp_hash*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6894 0, /* tp_call */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6895 0, /* tp_str */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6896 0, /* tp_getattro */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6897 0, /* tp_setattro */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6898 0, /* tp_as_buffer */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6899 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6900 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_WEAKREFS, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6901 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6902 Py_TPFLAGS_DEFAULT, /* tp_flags */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6903 #endif
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6904 0, /* tp_doc */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6905 0, /* tp_traverse */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6906 0, /* tp_clear */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6907 0, /* tp_richcompare */
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6908 offsetof(DBSequenceObject, in_weakreflist), /* tp_weaklistoffset */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6909 0, /*tp_iter*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6910 0, /*tp_iternext*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6911 DBSequence_methods, /*tp_methods*/
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6912 0, /*tp_members*/
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6913 };
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6914 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6915
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6916 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6917 /* Module-level functions */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6918
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6919 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6920 DB_construct(PyObject* self, PyObject* args, PyObject* kwargs)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6921 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6922 PyObject* dbenvobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6923 int flags = 0;
36684
0bebeb393045 More unconsting.
Martin v. Löwis <martin@v.loewis.de>
parents: 36501
diff changeset
6924 static char* kwnames[] = { "dbEnv", "flags", NULL};
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6925
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6926 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Oi:DB", kwnames,
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
6927 &dbenvobj, &flags))
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6928 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6929 if (dbenvobj == Py_None)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6930 dbenvobj = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6931 else if (dbenvobj && !DBEnvObject_Check(dbenvobj)) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6932 makeTypeError("DBEnv", dbenvobj);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6933 return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6934 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6935
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6936 return (PyObject* )newDBObject((DBEnvObject*)dbenvobj, flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6937 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6938
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6939
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6940 static PyObject*
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6941 DBEnv_construct(PyObject* self, PyObject* args)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6942 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6943 int flags = 0;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6944 if (!PyArg_ParseTuple(args, "|i:DbEnv", &flags)) return NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6945 return (PyObject* )newDBEnvObject(flags);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6946 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6947
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6948 #if (DBVER >= 43)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6949 static PyObject*
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6950 DBSequence_construct(PyObject* self, PyObject* args, PyObject* kwargs)
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6951 {
38735
9a944676732a Fix Coverity # 146. newDBSequenceObject would deref dbobj, so it can't be NULL.
Neal Norwitz <nnorwitz@gmail.com>
parents: 38629
diff changeset
6952 PyObject* dbobj;
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6953 int flags = 0;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6954 static char* kwnames[] = { "db", "flags", NULL};
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6955
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6956 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|i:DBSequence", kwnames, &dbobj, &flags))
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6957 return NULL;
38735
9a944676732a Fix Coverity # 146. newDBSequenceObject would deref dbobj, so it can't be NULL.
Neal Norwitz <nnorwitz@gmail.com>
parents: 38629
diff changeset
6958 if (!DBObject_Check(dbobj)) {
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6959 makeTypeError("DB", dbobj);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6960 return NULL;
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6961 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6962 return (PyObject* )newDBSequenceObject((DBObject*)dbobj, flags);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6963 }
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6964 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6965
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6966 static char bsddb_version_doc[] =
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6967 "Returns a tuple of major, minor, and patch release numbers of the\n\
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6968 underlying DB library.";
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6969
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6970 static PyObject*
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6971 bsddb_version(PyObject* self)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6972 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6973 int major, minor, patch;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6974
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6975 db_version(&major, &minor, &patch);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6976 return Py_BuildValue("(iii)", major, minor, patch);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6977 }
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6978
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6979
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6980 /* List of functions defined in the module */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6981 static PyMethodDef bsddb_methods[] = {
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6982 {"DB", (PyCFunction)DB_construct, METH_VARARGS | METH_KEYWORDS },
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6983 {"DBEnv", (PyCFunction)DBEnv_construct, METH_VARARGS},
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6984 #if (DBVER >= 43)
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
6985 {"DBSequence", (PyCFunction)DBSequence_construct, METH_VARARGS | METH_KEYWORDS },
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6986 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6987 {"version", (PyCFunction)bsddb_version, METH_NOARGS, bsddb_version_doc},
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6988 {NULL, NULL} /* sentinel */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6989 };
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6990
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
6991
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
6992 /* API structure */
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
6993 static BSDDB_api bsddb_api;
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
6994
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6995
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6996 /* --------------------------------------------------------------------- */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6997 /* Module initialization */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6998
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
6999
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7000 /* Convenience routine to export an integer value.
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7001 * Errors are silently ignored, for better or for worse...
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7002 */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7003 #define ADD_INT(dict, NAME) _addIntToDict(dict, #NAME, NAME)
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7004
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7005 #define MODULE_NAME_MAX_LEN 11
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7006 static char _bsddbModuleName[MODULE_NAME_MAX_LEN+1] = "_bsddb";
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7007
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7008 #if (PY_VERSION_HEX >= 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7009 static struct PyModuleDef bsddbmodule = {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7010 PyModuleDef_HEAD_INIT,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7011 _bsddbModuleName, /* Name of module */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7012 NULL, /* module documentation, may be NULL */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7013 -1, /* size of per-interpreter state of the module,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7014 or -1 if the module keeps state in global variables. */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7015 bsddb_methods,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7016 NULL, /* Reload */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7017 NULL, /* Traverse */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7018 NULL, /* Clear */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7019 NULL /* Free */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7020 };
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7021 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7022
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7023
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7024 #if (PY_VERSION_HEX < 0x03000000)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7025 DL_EXPORT(void) init_bsddb(void)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7026 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7027 PyMODINIT_FUNC PyInit__bsddb(void) /* Note the two underscores */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7028 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7029 {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7030 PyObject* m;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7031 PyObject* d;
47294
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
7032 PyObject* pybsddb_version_s = PyBytes_FromString( PY_BSDDB_VERSION );
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
7033 PyObject* db_version_s = PyBytes_FromString( DB_VERSION_STRING );
4fe192d48960 Renamed PyString to PyBytes
Christian Heimes <christian@cheimes.de>
parents: 47213
diff changeset
7034 PyObject* cvsid_s = PyBytes_FromString( rcs_id );
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7035 PyObject* py_api;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7036
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7037 /* Initialize object types */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7038 if ((PyType_Ready(&DB_Type) < 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7039 || (PyType_Ready(&DBCursor_Type) < 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7040 || (PyType_Ready(&DBEnv_Type) < 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7041 || (PyType_Ready(&DBTxn_Type) < 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7042 || (PyType_Ready(&DBLock_Type) < 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7043 #if (DBVER >= 43)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7044 || (PyType_Ready(&DBSequence_Type) < 0)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7045 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7046 ) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7047 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7048 return;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7049 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7050 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7051 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7052 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7053
28732
ba909236eb13 Update to the new PyGILState APIs to simplify and correct thread-state
Mark Hammond <mhammond@skippinet.com.au>
parents: 28480
diff changeset
7054 #if defined(WITH_THREAD) && !defined(MYDB_USE_GILSTATE)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7055 /* Save the current interpreter, so callbacks can do the right thing. */
31799
e6379bda91d7 A few more PyThreadState_Get to PyThreadState_GET conversions
Nicholas Bastin <nick.bastin@gmail.com>
parents: 31670
diff changeset
7056 _db_interpreterState = PyThreadState_GET()->interp;
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7057 #endif
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7058
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7059 /* Create the module and add the functions */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7060 #if (PY_VERSION_HEX < 0x03000000)
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7061 m = Py_InitModule(_bsddbModuleName, bsddb_methods);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7062 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7063 m=PyModule_Create(&bsddbmodule);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7064 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7065 if (m == NULL) {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7066 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7067 return;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7068 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7069 return NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7070 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7071 }
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7072
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7073 /* Add some symbolic constants to the module */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7074 d = PyModule_GetDict(m);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7075 PyDict_SetItemString(d, "__version__", pybsddb_version_s);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7076 PyDict_SetItemString(d, "cvsid", cvsid_s);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7077 PyDict_SetItemString(d, "DB_VERSION_STRING", db_version_s);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7078 Py_DECREF(pybsddb_version_s);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7079 pybsddb_version_s = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7080 Py_DECREF(cvsid_s);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7081 cvsid_s = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7082 Py_DECREF(db_version_s);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7083 db_version_s = NULL;
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7084
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7085 ADD_INT(d, DB_VERSION_MAJOR);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7086 ADD_INT(d, DB_VERSION_MINOR);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7087 ADD_INT(d, DB_VERSION_PATCH);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7088
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7089 ADD_INT(d, DB_MAX_PAGES);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7090 ADD_INT(d, DB_MAX_RECORDS);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7091
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7092 #if (DBVER >= 42)
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7093 ADD_INT(d, DB_RPCCLIENT);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7094 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7095 ADD_INT(d, DB_CLIENT);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7096 /* allow apps to be written using DB_RPCCLIENT on older Berkeley DB */
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7097 _addIntToDict(d, "DB_RPCCLIENT", DB_CLIENT);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7098 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7099 ADD_INT(d, DB_XA_CREATE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7100
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7101 ADD_INT(d, DB_CREATE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7102 ADD_INT(d, DB_NOMMAP);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7103 ADD_INT(d, DB_THREAD);
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7104 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7105 ADD_INT(d, DB_MULTIVERSION);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7106 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7107
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7108 ADD_INT(d, DB_FORCE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7109 ADD_INT(d, DB_INIT_CDB);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7110 ADD_INT(d, DB_INIT_LOCK);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7111 ADD_INT(d, DB_INIT_LOG);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7112 ADD_INT(d, DB_INIT_MPOOL);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7113 ADD_INT(d, DB_INIT_TXN);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7114 ADD_INT(d, DB_JOINENV);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7115
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7116 ADD_INT(d, DB_XIDDATASIZE);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7117
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7118 ADD_INT(d, DB_RECOVER);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7119 ADD_INT(d, DB_RECOVER_FATAL);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7120 ADD_INT(d, DB_TXN_NOSYNC);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7121 ADD_INT(d, DB_USE_ENVIRON);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7122 ADD_INT(d, DB_USE_ENVIRON_ROOT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7123
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7124 ADD_INT(d, DB_LOCKDOWN);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7125 ADD_INT(d, DB_PRIVATE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7126 ADD_INT(d, DB_SYSTEM_MEM);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7127
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7128 ADD_INT(d, DB_TXN_SYNC);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7129 ADD_INT(d, DB_TXN_NOWAIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7130
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7131 ADD_INT(d, DB_EXCL);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7132 ADD_INT(d, DB_FCNTL_LOCKING);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7133 ADD_INT(d, DB_ODDFILESIZE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7134 ADD_INT(d, DB_RDWRMASTER);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7135 ADD_INT(d, DB_RDONLY);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7136 ADD_INT(d, DB_TRUNCATE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7137 ADD_INT(d, DB_EXTENT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7138 ADD_INT(d, DB_CDB_ALLDB);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7139 ADD_INT(d, DB_VERIFY);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7140 ADD_INT(d, DB_UPGRADE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7141
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7142 ADD_INT(d, DB_AGGRESSIVE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7143 ADD_INT(d, DB_NOORDERCHK);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7144 ADD_INT(d, DB_ORDERCHKONLY);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7145 ADD_INT(d, DB_PR_PAGE);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7146
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7147 ADD_INT(d, DB_PR_RECOVERYTEST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7148 ADD_INT(d, DB_SALVAGE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7149
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7150 ADD_INT(d, DB_LOCK_NORUN);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7151 ADD_INT(d, DB_LOCK_DEFAULT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7152 ADD_INT(d, DB_LOCK_OLDEST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7153 ADD_INT(d, DB_LOCK_RANDOM);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7154 ADD_INT(d, DB_LOCK_YOUNGEST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7155 ADD_INT(d, DB_LOCK_MAXLOCKS);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7156 ADD_INT(d, DB_LOCK_MINLOCKS);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7157 ADD_INT(d, DB_LOCK_MINWRITE);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7158
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7159 ADD_INT(d, DB_LOCK_EXPIRE);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7160 #if (DBVER >= 43)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7161 ADD_INT(d, DB_LOCK_MAXWRITE);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7162 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7163
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7164 _addIntToDict(d, "DB_LOCK_CONFLICT", 0);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7165
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7166 ADD_INT(d, DB_LOCK_DUMP);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7167 ADD_INT(d, DB_LOCK_GET);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7168 ADD_INT(d, DB_LOCK_INHERIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7169 ADD_INT(d, DB_LOCK_PUT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7170 ADD_INT(d, DB_LOCK_PUT_ALL);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7171 ADD_INT(d, DB_LOCK_PUT_OBJ);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7172
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7173 ADD_INT(d, DB_LOCK_NG);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7174 ADD_INT(d, DB_LOCK_READ);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7175 ADD_INT(d, DB_LOCK_WRITE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7176 ADD_INT(d, DB_LOCK_NOWAIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7177 ADD_INT(d, DB_LOCK_WAIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7178 ADD_INT(d, DB_LOCK_IWRITE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7179 ADD_INT(d, DB_LOCK_IREAD);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7180 ADD_INT(d, DB_LOCK_IWR);
36396
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7181 #if (DBVER < 44)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7182 ADD_INT(d, DB_LOCK_DIRTY);
36396
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7183 #else
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7184 ADD_INT(d, DB_LOCK_READ_UNCOMMITTED); /* renamed in 4.4 */
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7185 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7186 ADD_INT(d, DB_LOCK_WWRITE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7187
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7188 ADD_INT(d, DB_LOCK_RECORD);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7189 ADD_INT(d, DB_LOCK_UPGRADE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7190 ADD_INT(d, DB_LOCK_SWITCH);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7191 ADD_INT(d, DB_LOCK_UPGRADE_WRITE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7192
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7193 ADD_INT(d, DB_LOCK_NOWAIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7194 ADD_INT(d, DB_LOCK_RECORD);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7195 ADD_INT(d, DB_LOCK_UPGRADE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7196
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7197 ADD_INT(d, DB_LSTAT_ABORTED);
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
7198 #if (DBVER < 43)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7199 ADD_INT(d, DB_LSTAT_ERR);
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
7200 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7201 ADD_INT(d, DB_LSTAT_FREE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7202 ADD_INT(d, DB_LSTAT_HELD);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7203
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7204 ADD_INT(d, DB_LSTAT_PENDING);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7205 ADD_INT(d, DB_LSTAT_WAITING);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7206
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7207 ADD_INT(d, DB_ARCH_ABS);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7208 ADD_INT(d, DB_ARCH_DATA);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7209 ADD_INT(d, DB_ARCH_LOG);
38594
1c23e95a80a2 bugfix: when log_archive was called with the DB_ARCH_REMOVE flag present
Gregory P. Smith <greg@mad-scientist.com>
parents: 38489
diff changeset
7210 #if (DBVER >= 42)
1c23e95a80a2 bugfix: when log_archive was called with the DB_ARCH_REMOVE flag present
Gregory P. Smith <greg@mad-scientist.com>
parents: 38489
diff changeset
7211 ADD_INT(d, DB_ARCH_REMOVE);
1c23e95a80a2 bugfix: when log_archive was called with the DB_ARCH_REMOVE flag present
Gregory P. Smith <greg@mad-scientist.com>
parents: 38489
diff changeset
7212 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7213
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7214 ADD_INT(d, DB_BTREE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7215 ADD_INT(d, DB_HASH);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7216 ADD_INT(d, DB_RECNO);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7217 ADD_INT(d, DB_QUEUE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7218 ADD_INT(d, DB_UNKNOWN);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7219
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7220 ADD_INT(d, DB_DUP);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7221 ADD_INT(d, DB_DUPSORT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7222 ADD_INT(d, DB_RECNUM);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7223 ADD_INT(d, DB_RENUMBER);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7224 ADD_INT(d, DB_REVSPLITOFF);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7225 ADD_INT(d, DB_SNAPSHOT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7226
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7227 ADD_INT(d, DB_JOIN_NOSORT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7228
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7229 ADD_INT(d, DB_AFTER);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7230 ADD_INT(d, DB_APPEND);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7231 ADD_INT(d, DB_BEFORE);
40544
f9b27820798b Support linking of the bsddb module against BerkeleyDB 4.5.x
Gregory P. Smith <greg@mad-scientist.com>
parents: 40373
diff changeset
7232 #if (DBVER < 45)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7233 ADD_INT(d, DB_CACHED_COUNTS);
40544
f9b27820798b Support linking of the bsddb module against BerkeleyDB 4.5.x
Gregory P. Smith <greg@mad-scientist.com>
parents: 40373
diff changeset
7234 #endif
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7235
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7236 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7237 _addIntToDict(d, "DB_CHECKPOINT", 0);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7238 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7239 ADD_INT(d, DB_CHECKPOINT);
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7240 ADD_INT(d, DB_CURLSN);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7241 #endif
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7242 #if (DBVER <= 41)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7243 ADD_INT(d, DB_COMMIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7244 #endif
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7245 ADD_INT(d, DB_CONSUME);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7246 ADD_INT(d, DB_CONSUME_WAIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7247 ADD_INT(d, DB_CURRENT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7248 ADD_INT(d, DB_FAST_STAT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7249 ADD_INT(d, DB_FIRST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7250 ADD_INT(d, DB_FLUSH);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7251 ADD_INT(d, DB_GET_BOTH);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7252 ADD_INT(d, DB_GET_RECNO);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7253 ADD_INT(d, DB_JOIN_ITEM);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7254 ADD_INT(d, DB_KEYFIRST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7255 ADD_INT(d, DB_KEYLAST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7256 ADD_INT(d, DB_LAST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7257 ADD_INT(d, DB_NEXT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7258 ADD_INT(d, DB_NEXT_DUP);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7259 ADD_INT(d, DB_NEXT_NODUP);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7260 ADD_INT(d, DB_NODUPDATA);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7261 ADD_INT(d, DB_NOOVERWRITE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7262 ADD_INT(d, DB_NOSYNC);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7263 ADD_INT(d, DB_POSITION);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7264 ADD_INT(d, DB_PREV);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7265 ADD_INT(d, DB_PREV_NODUP);
40544
f9b27820798b Support linking of the bsddb module against BerkeleyDB 4.5.x
Gregory P. Smith <greg@mad-scientist.com>
parents: 40373
diff changeset
7266 #if (DBVER < 45)
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7267 ADD_INT(d, DB_RECORDCOUNT);
40544
f9b27820798b Support linking of the bsddb module against BerkeleyDB 4.5.x
Gregory P. Smith <greg@mad-scientist.com>
parents: 40373
diff changeset
7268 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7269 ADD_INT(d, DB_SET);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7270 ADD_INT(d, DB_SET_RANGE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7271 ADD_INT(d, DB_SET_RECNO);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7272 ADD_INT(d, DB_WRITECURSOR);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7273
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7274 ADD_INT(d, DB_OPFLAGS_MASK);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7275 ADD_INT(d, DB_RMW);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7276 ADD_INT(d, DB_DIRTY_READ);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7277 ADD_INT(d, DB_MULTIPLE);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7278 ADD_INT(d, DB_MULTIPLE_KEY);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7279
36396
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7280 #if (DBVER >= 44)
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7281 ADD_INT(d, DB_READ_UNCOMMITTED); /* replaces DB_DIRTY_READ in 4.4 */
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7282 ADD_INT(d, DB_READ_COMMITTED);
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7283 #endif
0372e25e430e Support for BerkeleyDB 4.4 (tested against 4.4.20 as well as all the
Gregory P. Smith <greg@mad-scientist.com>
parents: 36324
diff changeset
7284
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7285 ADD_INT(d, DB_DONOTINDEX);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7286
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7287 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7288 _addIntToDict(d, "DB_INCOMPLETE", 0);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7289 #else
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7290 ADD_INT(d, DB_INCOMPLETE);
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7291 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7292 ADD_INT(d, DB_KEYEMPTY);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7293 ADD_INT(d, DB_KEYEXIST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7294 ADD_INT(d, DB_LOCK_DEADLOCK);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7295 ADD_INT(d, DB_LOCK_NOTGRANTED);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7296 ADD_INT(d, DB_NOSERVER);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7297 ADD_INT(d, DB_NOSERVER_HOME);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7298 ADD_INT(d, DB_NOSERVER_ID);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7299 ADD_INT(d, DB_NOTFOUND);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7300 ADD_INT(d, DB_OLD_VERSION);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7301 ADD_INT(d, DB_RUNRECOVERY);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7302 ADD_INT(d, DB_VERIFY_BAD);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7303 ADD_INT(d, DB_PAGE_NOTFOUND);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7304 ADD_INT(d, DB_SECONDARY_BAD);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7305 ADD_INT(d, DB_STAT_CLEAR);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7306 ADD_INT(d, DB_REGION_INIT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7307 ADD_INT(d, DB_NOLOCKING);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7308 ADD_INT(d, DB_YIELDCPU);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7309 ADD_INT(d, DB_PANIC_ENVIRONMENT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7310 ADD_INT(d, DB_NOPANIC);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7311
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7312 #if (DBVER >= 41)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7313 ADD_INT(d, DB_OVERWRITE);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7314 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7315
43742
157bb02892bc Fix bug introduced in revision 58385. Database keys could no longer
Gregory P. Smith <greg@mad-scientist.com>
parents: 43537
diff changeset
7316 #ifdef DB_REGISTER
157bb02892bc Fix bug introduced in revision 58385. Database keys could no longer
Gregory P. Smith <greg@mad-scientist.com>
parents: 43537
diff changeset
7317 ADD_INT(d, DB_REGISTER);
157bb02892bc Fix bug introduced in revision 58385. Database keys could no longer
Gregory P. Smith <greg@mad-scientist.com>
parents: 43537
diff changeset
7318 #endif
157bb02892bc Fix bug introduced in revision 58385. Database keys could no longer
Gregory P. Smith <greg@mad-scientist.com>
parents: 43537
diff changeset
7319
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7320 #if (DBVER >= 42)
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7321 ADD_INT(d, DB_TIME_NOTGRANTED);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7322 ADD_INT(d, DB_TXN_NOT_DURABLE);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7323 ADD_INT(d, DB_TXN_WRITE_NOSYNC);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7324 ADD_INT(d, DB_DIRECT_DB);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7325 ADD_INT(d, DB_INIT_REP);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7326 ADD_INT(d, DB_ENCRYPT);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7327 ADD_INT(d, DB_CHKSUM);
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7328 #endif
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7329
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7330 #if (DBVER >= 42) && (DBVER < 47)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7331 ADD_INT(d, DB_LOG_AUTOREMOVE);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7332 ADD_INT(d, DB_DIRECT_LOG);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7333 #endif
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7334
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7335 #if (DBVER >= 47)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7336 ADD_INT(d, DB_LOG_DIRECT);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7337 ADD_INT(d, DB_LOG_DSYNC);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7338 ADD_INT(d, DB_LOG_IN_MEMORY);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7339 ADD_INT(d, DB_LOG_AUTO_REMOVE);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7340 ADD_INT(d, DB_LOG_ZERO);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7341 #endif
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7342
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7343 #if (DBVER >= 44)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7344 ADD_INT(d, DB_DSYNC_DB);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7345 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7346
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7347 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7348 ADD_INT(d, DB_TXN_SNAPSHOT);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7349 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7350
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7351 ADD_INT(d, DB_VERB_DEADLOCK);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7352 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7353 ADD_INT(d, DB_VERB_FILEOPS);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7354 ADD_INT(d, DB_VERB_FILEOPS_ALL);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7355 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7356 ADD_INT(d, DB_VERB_RECOVERY);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7357 #if (DBVER >= 44)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7358 ADD_INT(d, DB_VERB_REGISTER);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7359 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7360 ADD_INT(d, DB_VERB_REPLICATION);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7361 ADD_INT(d, DB_VERB_WAITSFOR);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7362
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7363 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7364 ADD_INT(d, DB_EVENT_PANIC);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7365 ADD_INT(d, DB_EVENT_REP_CLIENT);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7366 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7367 ADD_INT(d, DB_EVENT_REP_ELECTED);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7368 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7369 ADD_INT(d, DB_EVENT_REP_MASTER);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7370 ADD_INT(d, DB_EVENT_REP_NEWMASTER);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7371 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7372 ADD_INT(d, DB_EVENT_REP_PERM_FAILED);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7373 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7374 ADD_INT(d, DB_EVENT_REP_STARTUPDONE);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7375 ADD_INT(d, DB_EVENT_WRITE_FAILED);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7376 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7377
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7378 ADD_INT(d, DB_REP_DUPMASTER);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7379 ADD_INT(d, DB_REP_HOLDELECTION);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7380 #if (DBVER >= 44)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7381 ADD_INT(d, DB_REP_IGNORE);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7382 ADD_INT(d, DB_REP_JOIN_FAILURE);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7383 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7384 #if (DBVER >= 42)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7385 ADD_INT(d, DB_REP_ISPERM);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7386 ADD_INT(d, DB_REP_NOTPERM);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7387 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7388 ADD_INT(d, DB_REP_NEWSITE);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7389
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7390 ADD_INT(d, DB_REP_MASTER);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7391 ADD_INT(d, DB_REP_CLIENT);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7392 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7393 ADD_INT(d, DB_REP_ELECTION);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7394
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7395 ADD_INT(d, DB_REP_ACK_TIMEOUT);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7396 ADD_INT(d, DB_REP_CONNECTION_RETRY);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7397 ADD_INT(d, DB_REP_ELECTION_TIMEOUT);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7398 ADD_INT(d, DB_REP_ELECTION_RETRY);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7399 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7400 #if (DBVER >= 46)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7401 ADD_INT(d, DB_REP_CHECKPOINT_DELAY);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7402 ADD_INT(d, DB_REP_FULL_ELECTION_TIMEOUT);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7403 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7404
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7405 #if (DBVER >= 45)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7406 ADD_INT(d, DB_REPMGR_PEER);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7407 ADD_INT(d, DB_REPMGR_ACKS_ALL);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7408 ADD_INT(d, DB_REPMGR_ACKS_ALL_PEERS);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7409 ADD_INT(d, DB_REPMGR_ACKS_NONE);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7410 ADD_INT(d, DB_REPMGR_ACKS_ONE);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7411 ADD_INT(d, DB_REPMGR_ACKS_ONE_PEER);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7412 ADD_INT(d, DB_REPMGR_ACKS_QUORUM);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7413 ADD_INT(d, DB_REPMGR_CONNECTED);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7414 ADD_INT(d, DB_REPMGR_DISCONNECTED);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7415 ADD_INT(d, DB_STAT_CLEAR);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7416 ADD_INT(d, DB_STAT_ALL);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7417 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7418
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
7419 #if (DBVER >= 43)
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
7420 ADD_INT(d, DB_BUFFER_SMALL);
38607
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
7421 ADD_INT(d, DB_SEQ_DEC);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
7422 ADD_INT(d, DB_SEQ_INC);
02d475405e3b * add support for DBSequence objects [patch #1466734]
Gregory P. Smith <greg@mad-scientist.com>
parents: 38604
diff changeset
7423 ADD_INT(d, DB_SEQ_WRAP);
34155
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
7424 #endif
c294b11323d1 * Adds support for building against BerkeleyDB 4.3.21
Gregory P. Smith <greg@mad-scientist.com>
parents: 33401
diff changeset
7425
47213
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7426 #if (DBVER >= 43) && (DBVER < 47)
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7427 ADD_INT(d, DB_LOG_INMEMORY);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7428 ADD_INT(d, DB_DSYNC_LOG);
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7429 #endif
4f6ea5c59ab3 bsddb module updated to version 4.7.0
Jesus Cea <jcea@jcea.es>
parents: 47117
diff changeset
7430
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7431 #if (DBVER >= 41)
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7432 ADD_INT(d, DB_ENCRYPT_AES);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7433 ADD_INT(d, DB_AUTO_COMMIT);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7434 #else
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7435 /* allow Berkeley DB 4.1 aware apps to run on older versions */
26878
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7436 _addIntToDict(d, "DB_AUTO_COMMIT", 0);
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7437 #endif
c249607ef535 Port BerkeleyDB 4.1 support from the pybsddb project. bsddb is now at
Barry Warsaw <barry@python.org>
parents: 26367
diff changeset
7438
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7439 ADD_INT(d, EINVAL);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7440 ADD_INT(d, EACCES);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7441 ADD_INT(d, ENOSPC);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7442 ADD_INT(d, ENOMEM);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7443 ADD_INT(d, EAGAIN);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7444 ADD_INT(d, EBUSY);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7445 ADD_INT(d, EEXIST);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7446 ADD_INT(d, ENOENT);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7447 ADD_INT(d, EPERM);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7448
28480
86a4cea70973 init_bsddb(): Added a few symbols that Greg forgot.
Barry Warsaw <barry@python.org>
parents: 28416
diff changeset
7449 ADD_INT(d, DB_SET_LOCK_TIMEOUT);
86a4cea70973 init_bsddb(): Added a few symbols that Greg forgot.
Barry Warsaw <barry@python.org>
parents: 28416
diff changeset
7450 ADD_INT(d, DB_SET_TXN_TIMEOUT);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7451
37538
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7452 /* The exception name must be correct for pickled exception *
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7453 * objects to unpickle properly. */
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7454 #ifdef PYBSDDB_STANDALONE /* different value needed for standalone pybsddb */
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7455 #define PYBSDDB_EXCEPTION_BASE "bsddb3.db."
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7456 #else
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7457 #define PYBSDDB_EXCEPTION_BASE "bsddb.db."
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7458 #endif
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7459
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7460 /* All the rest of the exceptions derive only from DBError */
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7461 #define MAKE_EX(name) name = PyErr_NewException(PYBSDDB_EXCEPTION_BASE #name, DBError, NULL); \
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7462 PyDict_SetItemString(d, #name, name)
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7463
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7464 /* The base exception class is DBError */
37538
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7465 DBError = NULL; /* used in MAKE_EX so that it derives from nothing */
9006f9223d80 Fix bsddb.db.DBError derived exceptions so they can be unpickled.
Gregory P. Smith <greg@mad-scientist.com>
parents: 36943
diff changeset
7466 MAKE_EX(DBError);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7467
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7468 #if (PY_VERSION_HEX < 0x03000000)
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
7469 /* Some magic to make DBNotFoundError and DBKeyEmptyError derive
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
7470 * from both DBError and KeyError, since the API only supports
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
7471 * using one base class. */
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7472 PyDict_SetItemString(d, "KeyError", PyExc_KeyError);
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
7473 PyRun_String("class DBNotFoundError(DBError, KeyError): pass\n"
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
7474 "class DBKeyEmptyError(DBError, KeyError): pass",
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7475 Py_file_input, d, d);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7476 DBNotFoundError = PyDict_GetItemString(d, "DBNotFoundError");
35015
bac898d39b53 pybsddb 4.3.2:
Gregory P. Smith <greg@mad-scientist.com>
parents: 34999
diff changeset
7477 DBKeyEmptyError = PyDict_GetItemString(d, "DBKeyEmptyError");
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7478 PyDict_DelItemString(d, "KeyError");
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7479 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7480 /* Since Python 2.5, PyErr_NewException() accepts a tuple, to be able to
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7481 ** derive from several classes. We use this new API only for Python 3.0,
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7482 ** though.
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7483 */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7484 {
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7485 PyObject* bases;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7486
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7487 bases = PyTuple_Pack(2, DBError, PyExc_KeyError);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7488
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7489 #define MAKE_EX2(name) name = PyErr_NewException(PYBSDDB_EXCEPTION_BASE #name, bases, NULL); \
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7490 PyDict_SetItemString(d, #name, name)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7491 MAKE_EX2(DBNotFoundError);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7492 MAKE_EX2(DBKeyEmptyError);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7493
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7494 #undef MAKE_EX2
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7495
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7496 Py_XDECREF(bases);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7497 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7498 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7499
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7500
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7501 #if !INCOMPLETE_IS_WARNING
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7502 MAKE_EX(DBIncompleteError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7503 #endif
30836
522a3d7e0a96 Fix a tuple memory leak when raising DB, DBEnv and DBCursor "object
Gregory P. Smith <greg@mad-scientist.com>
parents: 30617
diff changeset
7504 MAKE_EX(DBCursorClosedError);
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7505 MAKE_EX(DBKeyEmptyError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7506 MAKE_EX(DBKeyExistError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7507 MAKE_EX(DBLockDeadlockError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7508 MAKE_EX(DBLockNotGrantedError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7509 MAKE_EX(DBOldVersionError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7510 MAKE_EX(DBRunRecoveryError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7511 MAKE_EX(DBVerifyBadError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7512 MAKE_EX(DBNoServerError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7513 MAKE_EX(DBNoServerHomeError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7514 MAKE_EX(DBNoServerIDError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7515 MAKE_EX(DBPageNotFoundError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7516 MAKE_EX(DBSecondaryBadError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7517
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7518 MAKE_EX(DBInvalidArgError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7519 MAKE_EX(DBAccessError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7520 MAKE_EX(DBNoSpaceError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7521 MAKE_EX(DBNoMemoryError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7522 MAKE_EX(DBAgainError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7523 MAKE_EX(DBBusyError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7524 MAKE_EX(DBFileExistsError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7525 MAKE_EX(DBNoSuchFileError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7526 MAKE_EX(DBPermissionsError);
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7527
46981
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7528 #if (DBVER >= 42)
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7529 MAKE_EX(DBRepHandleDeadError);
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7530 #endif
69da7a4f2f8e bsddb module updated to version 4.6.4
Jesus Cea <jcea@jcea.es>
parents: 46543
diff changeset
7531
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7532 MAKE_EX(DBRepUnavailError);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7533
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7534 #undef MAKE_EX
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7535
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7536 /* Initiliase the C API structure and add it to the module */
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7537 bsddb_api.db_type = &DB_Type;
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7538 bsddb_api.dbcursor_type = &DBCursor_Type;
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7539 bsddb_api.dbenv_type = &DBEnv_Type;
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7540 bsddb_api.dbtxn_type = &DBTxn_Type;
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7541 bsddb_api.dblock_type = &DBLock_Type;
43537
9b6a473cfa22 Get this module to compile with bsddb versions prior to 4.3
Neal Norwitz <nnorwitz@gmail.com>
parents: 43533
diff changeset
7542 #if (DBVER >= 43)
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7543 bsddb_api.dbsequence_type = &DBSequence_Type;
43537
9b6a473cfa22 Get this module to compile with bsddb versions prior to 4.3
Neal Norwitz <nnorwitz@gmail.com>
parents: 43533
diff changeset
7544 #endif
43504
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7545 bsddb_api.makeDBError = makeDBError;
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7546
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7547 py_api = PyCObject_FromVoidPtr((void*)&bsddb_api, NULL);
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7548 PyDict_SetItemString(d, "api", py_api);
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7549 Py_DECREF(py_api);
33021e403f3c Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
Gregory P. Smith <greg@mad-scientist.com>
parents: 43476
diff changeset
7550
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7551 /* Check for errors */
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7552 if (PyErr_Occurred()) {
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7553 PyErr_Print();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7554 Py_FatalError("can't initialize module _bsddb/_pybsddb");
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7555 Py_DECREF(m);
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7556 m = NULL;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7557 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7558 #if (PY_VERSION_HEX < 0x03000000)
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7559 return;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7560 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7561 return m;
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7562 #endif
26280
875140d30e17 Import PyBSDDB 3.4.0. Rename historical wrapper to bsddb185.
Martin v. Löwis <martin@v.loewis.de>
parents:
diff changeset
7563 }
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7564
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7565 /* allow this module to be named _pybsddb so that it can be installed
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7566 * and imported on top of python >= 2.3 that includes its own older
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7567 * copy of the library named _bsddb without importing the old version. */
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7568 #if (PY_VERSION_HEX < 0x03000000)
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7569 DL_EXPORT(void) init_pybsddb(void)
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7570 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7571 PyMODINIT_FUNC PyInit__pybsddb(void) /* Note the two underscores */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7572 #endif
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7573 {
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7574 strncpy(_bsddbModuleName, "_pybsddb", MODULE_NAME_MAX_LEN);
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7575 #if (PY_VERSION_HEX < 0x03000000)
30475
185c5f6b6157 Adds basic support for BerkeleyDB 4.2.x. Compiles and passes tests; new
Gregory P. Smith <greg@mad-scientist.com>
parents: 30227
diff changeset
7576 init_bsddb();
48054
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7577 #else
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7578 return PyInit__bsddb(); /* Note the two underscores */
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7579 #endif
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7580 }
10f41adc0d24 bsddb module updated to version 4.7.2devel9.
Jesus Cea <jcea@jcea.es>
parents: 47330
diff changeset
7581