Skip to content

Commit

Permalink
pythongh-92206: Move pysqlite_step() to Modules/_sqlite/cursor.c (pyt…
Browse files Browse the repository at this point in the history
  • Loading branch information
erlend-aasland authored May 3, 2022
1 parent 39e6b8a commit e846fe3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 16 deletions.
16 changes: 14 additions & 2 deletions Modules/_sqlite/cursor.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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 */
Expand Down Expand Up @@ -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);
}
Expand Down
12 changes: 0 additions & 12 deletions Modules/_sqlite/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,6 @@
#include "module.h"
#include "connection.h"

int
pysqlite_step(sqlite3_stmt *statement)
{
int rc;

Py_BEGIN_ALLOW_THREADS
rc = sqlite3_step(statement);
Py_END_ALLOW_THREADS

return rc;
}

// Returns non-NULL if a new exception should be raised
static PyObject *
get_exception_class(pysqlite_state *state, int errorcode)
Expand Down
2 changes: 0 additions & 2 deletions Modules/_sqlite/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
#include "sqlite3.h"
#include "connection.h"

int pysqlite_step(sqlite3_stmt *statement);

/**
* Checks the SQLite error code and sets the appropriate DB-API exception.
* Returns the error code (0 means no error occurred).
Expand Down

0 comments on commit e846fe3

Please sign in to comment.