gh-92206: Move pysqlite_step() to Modules/_sqlite/cursor.c (#92207)

This commit is contained in:
Erlend Egeberg Aasland 2022-05-02 21:45:04 -06:00 committed by GitHub
parent 39e6b8ae6a
commit e846fe3fc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 16 deletions

View file

@ -454,6 +454,18 @@ get_statement_from_cache(pysqlite_Cursor *self, PyObject *operation)
return PyObject_Vectorcall(cache, args + 1, nargsf, NULL);
}
static inline int
stmt_step(sqlite3_stmt *statement)
{
int rc;
Py_BEGIN_ALLOW_THREADS
rc = sqlite3_step(statement);
Py_END_ALLOW_THREADS
return rc;
}
PyObject *
_pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation, PyObject* second_argument)
{
@ -570,7 +582,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* operation
goto error;
}
rc = pysqlite_step(self->statement->st);
rc = stmt_step(self->statement->st);
if (rc != SQLITE_DONE && rc != SQLITE_ROW) {
if (PyErr_Occurred()) {
/* there was an error that occurred in a user-defined callback */
@ -799,7 +811,7 @@ pysqlite_cursor_iternext(pysqlite_Cursor *self)
if (row == NULL) {
return NULL;
}
int rc = pysqlite_step(stmt);
int rc = stmt_step(stmt);
if (rc == SQLITE_DONE) {
(void)pysqlite_statement_reset(self->statement);
}