mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
sqlite3: Fix 64-bit integer handling in user functions on 32-bit architectures
Closes #8033.
This commit is contained in:
parent
29877e8e04
commit
4fe85abab9
4 changed files with 24 additions and 6 deletions
|
@ -484,7 +484,6 @@ error:
|
|||
|
||||
void _pysqlite_set_result(sqlite3_context* context, PyObject* py_val)
|
||||
{
|
||||
long longval;
|
||||
const char* buffer;
|
||||
Py_ssize_t buflen;
|
||||
|
||||
|
@ -493,8 +492,7 @@ void _pysqlite_set_result(sqlite3_context* context, PyObject* py_val)
|
|||
} else if (py_val == Py_None) {
|
||||
sqlite3_result_null(context);
|
||||
} else if (PyLong_Check(py_val)) {
|
||||
longval = PyLong_AsLong(py_val);
|
||||
sqlite3_result_int64(context, (PY_LONG_LONG)longval);
|
||||
sqlite3_result_int64(context, PyLong_AsLongLong(py_val));
|
||||
} else if (PyFloat_Check(py_val)) {
|
||||
sqlite3_result_double(context, PyFloat_AsDouble(py_val));
|
||||
} else if (PyUnicode_Check(py_val)) {
|
||||
|
@ -519,7 +517,6 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_
|
|||
sqlite3_value* cur_value;
|
||||
PyObject* cur_py_value;
|
||||
const char* val_str;
|
||||
PY_LONG_LONG val_int;
|
||||
Py_ssize_t buflen;
|
||||
|
||||
args = PyTuple_New(argc);
|
||||
|
@ -531,8 +528,7 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_
|
|||
cur_value = argv[i];
|
||||
switch (sqlite3_value_type(argv[i])) {
|
||||
case SQLITE_INTEGER:
|
||||
val_int = sqlite3_value_int64(cur_value);
|
||||
cur_py_value = PyLong_FromLong((long)val_int);
|
||||
cur_py_value = PyLong_FromLongLong(sqlite3_value_int64(cur_value));
|
||||
break;
|
||||
case SQLITE_FLOAT:
|
||||
cur_py_value = PyFloat_FromDouble(sqlite3_value_double(cur_value));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue