diff options
author | Erlend Egeberg Aasland <erlend.aasland@innova.no> | 2021-09-19 22:51:36 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-19 22:51:36 (GMT) |
commit | 771a5467132f0400d4c987db8ba807f845b655bc (patch) | |
tree | 3990d7bbde1a024cac1be92a1959c8f2ee6639c2 /Modules/_sqlite/cursor.c | |
parent | 1d42408495402b06ecae91420735aeff454be6b5 (diff) | |
download | cpython-771a5467132f0400d4c987db8ba807f845b655bc.zip cpython-771a5467132f0400d4c987db8ba807f845b655bc.tar.gz cpython-771a5467132f0400d4c987db8ba807f845b655bc.tar.bz2 |
bpo-45040: Simplify sqlite3 transaction control functions (GH-28019)
Diffstat (limited to 'Modules/_sqlite/cursor.c')
-rw-r--r-- | Modules/_sqlite/cursor.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c index 06ce385..d0c9e7f 100644 --- a/Modules/_sqlite/cursor.c +++ b/Modules/_sqlite/cursor.c @@ -431,31 +431,22 @@ static int begin_transaction(pysqlite_Connection *self) { int rc; - sqlite3_stmt *statement; Py_BEGIN_ALLOW_THREADS + sqlite3_stmt *statement; rc = sqlite3_prepare_v2(self->db, self->begin_statement, -1, &statement, NULL); - Py_END_ALLOW_THREADS - - if (rc != SQLITE_OK) { - _pysqlite_seterror(self->state, self->db); - goto error; + if (rc == SQLITE_OK) { + (void)sqlite3_step(statement); + rc = sqlite3_finalize(statement); } - - Py_BEGIN_ALLOW_THREADS - sqlite3_step(statement); - rc = sqlite3_finalize(statement); Py_END_ALLOW_THREADS - if (rc != SQLITE_OK && !PyErr_Occurred()) { - _pysqlite_seterror(self->state, self->db); - } - -error: - if (PyErr_Occurred()) { + if (rc != SQLITE_OK) { + (void)_pysqlite_seterror(self->state, self->db); return -1; } + return 0; } |