summaryrefslogtreecommitdiffstats
path: root/Modules/_sqlite/cursor.c
diff options
context:
space:
mode:
authorErlend Egeberg Aasland <erlend.aasland@innova.no>2021-09-19 22:51:36 (GMT)
committerGitHub <noreply@github.com>2021-09-19 22:51:36 (GMT)
commit771a5467132f0400d4c987db8ba807f845b655bc (patch)
tree3990d7bbde1a024cac1be92a1959c8f2ee6639c2 /Modules/_sqlite/cursor.c
parent1d42408495402b06ecae91420735aeff454be6b5 (diff)
downloadcpython-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.c23
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;
}