mirror of https://github.com/python/cpython
bpo-43852: Improve tuple creation in sqlite3 (GH-25421)
This commit is contained in:
parent
927b841c21
commit
e9194ea6ea
|
@ -592,8 +592,7 @@ _pysqlite_build_py_params(sqlite3_context *context, int argc,
|
|||
goto error;
|
||||
}
|
||||
|
||||
PyTuple_SetItem(args, i, cur_py_value);
|
||||
|
||||
PyTuple_SET_ITEM(args, i, cur_py_value);
|
||||
}
|
||||
|
||||
return args;
|
||||
|
|
|
@ -357,7 +357,7 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)
|
|||
if (!converted) {
|
||||
goto error;
|
||||
}
|
||||
PyTuple_SetItem(row, i, converted);
|
||||
PyTuple_SET_ITEM(row, i, converted);
|
||||
}
|
||||
|
||||
if (PyErr_Occurred())
|
||||
|
@ -406,7 +406,6 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation
|
|||
PyObject* func_args;
|
||||
PyObject* result;
|
||||
int numcols;
|
||||
PyObject* descriptor;
|
||||
PyObject* column_name;
|
||||
sqlite_int64 lastrowid;
|
||||
|
||||
|
@ -557,30 +556,24 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation
|
|||
goto error;
|
||||
}
|
||||
for (i = 0; i < numcols; i++) {
|
||||
descriptor = PyTuple_New(7);
|
||||
if (!descriptor) {
|
||||
goto error;
|
||||
}
|
||||
const char *colname;
|
||||
colname = sqlite3_column_name(self->statement->st, i);
|
||||
if (colname == NULL) {
|
||||
PyErr_NoMemory();
|
||||
Py_DECREF(descriptor);
|
||||
goto error;
|
||||
}
|
||||
column_name = _pysqlite_build_column_name(self, colname);
|
||||
if (column_name == NULL) {
|
||||
Py_DECREF(descriptor);
|
||||
goto error;
|
||||
}
|
||||
PyTuple_SetItem(descriptor, 0, column_name);
|
||||
PyTuple_SetItem(descriptor, 1, Py_NewRef(Py_None));
|
||||
PyTuple_SetItem(descriptor, 2, Py_NewRef(Py_None));
|
||||
PyTuple_SetItem(descriptor, 3, Py_NewRef(Py_None));
|
||||
PyTuple_SetItem(descriptor, 4, Py_NewRef(Py_None));
|
||||
PyTuple_SetItem(descriptor, 5, Py_NewRef(Py_None));
|
||||
PyTuple_SetItem(descriptor, 6, Py_NewRef(Py_None));
|
||||
PyTuple_SetItem(self->description, i, descriptor);
|
||||
PyObject *descriptor = PyTuple_Pack(7, column_name,
|
||||
Py_None, Py_None, Py_None,
|
||||
Py_None, Py_None, Py_None);
|
||||
Py_DECREF(column_name);
|
||||
if (descriptor == NULL) {
|
||||
goto error;
|
||||
}
|
||||
PyTuple_SET_ITEM(self->description, i, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue