Browse Source

Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,

such as was shipped with Centos 5 and Mac OS X 10.4.
pull/2332/head
Serhiy Storchaka 13 years ago
parent
commit
a9217a42e6
  1. 6
      Misc/NEWS
  2. 2
      Modules/_sqlite/cursor.c
  3. 8
      Modules/_sqlite/util.c
  4. 4
      Modules/_sqlite/util.h

6
Misc/NEWS

@ -19,6 +19,12 @@ Library
- Issue #15535: Fix namedtuple pickles which were picking up the OrderedDict
instead of just the underlying tuple.
Build
-----
- Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
such as was shipped with Centos 5 and Mac OS X 10.4.
Tests
-----

2
Modules/_sqlite/cursor.c

@ -716,7 +716,7 @@ PyObject* _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject*
Py_DECREF(self->lastrowid);
if (!multiple && statement_type == STATEMENT_INSERT) {
sqlite3_int64 lastrowid;
sqlite_int64 lastrowid;
Py_BEGIN_ALLOW_THREADS
lastrowid = sqlite3_last_insert_rowid(self->connection->db);
Py_END_ALLOW_THREADS

8
Modules/_sqlite/util.c

@ -111,7 +111,7 @@ int _pysqlite_seterror(sqlite3* db, sqlite3_stmt* st)
#endif
PyObject *
_pysqlite_long_from_int64(sqlite3_int64 value)
_pysqlite_long_from_int64(sqlite_int64 value)
{
#ifdef HAVE_LONG_LONG
# if SIZEOF_LONG_LONG < 8
@ -135,7 +135,7 @@ _pysqlite_long_from_int64(sqlite3_int64 value)
return PyLong_FromLong(value);
}
sqlite3_int64
sqlite_int64
_pysqlite_long_as_int64(PyObject * py_val)
{
int overflow;
@ -158,8 +158,8 @@ _pysqlite_long_as_int64(PyObject * py_val)
#endif
return value;
}
else if (sizeof(value) < sizeof(sqlite3_int64)) {
sqlite3_int64 int64val;
else if (sizeof(value) < sizeof(sqlite_int64)) {
sqlite_int64 int64val;
if (_PyLong_AsByteArray((PyLongObject *)py_val,
(unsigned char *)&int64val, sizeof(int64val),
IS_LITTLE_ENDIAN, 1 /* signed */) >= 0) {

4
Modules/_sqlite/util.h

@ -36,7 +36,7 @@ int pysqlite_step(sqlite3_stmt* statement, pysqlite_Connection* connection);
*/
int _pysqlite_seterror(sqlite3* db, sqlite3_stmt* st);
PyObject * _pysqlite_long_from_int64(sqlite3_int64 value);
sqlite3_int64 _pysqlite_long_as_int64(PyObject * value);
PyObject * _pysqlite_long_from_int64(sqlite_int64 value);
sqlite_int64 _pysqlite_long_as_int64(PyObject * value);
#endif
Loading…
Cancel
Save