aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErlend Egeberg Aasland <erlend.aasland@innova.no>2021-01-06 01:02:43 +0100
committerGitHub <noreply@github.com>2021-01-06 02:02:43 +0200
commitcf0b23908cc902ac38cd83dd7ca5afdf89e1543b (patch)
tree213330fcd0db5954b3937e913a168fc7f68ebf4b /Modules
parentbpo-40956: Convert _sqlite3.Cursor to Argument Clinic (GH-24007) (diff)
downloadcpython-cf0b23908cc902ac38cd83dd7ca5afdf89e1543b.tar.gz
cpython-cf0b23908cc902ac38cd83dd7ca5afdf89e1543b.tar.bz2
cpython-cf0b23908cc902ac38cd83dd7ca5afdf89e1543b.zip
bpo-40810: Require SQLite 3.7.15 (GH-24106)
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_sqlite/connection.c30
-rw-r--r--Modules/_sqlite/module.c8
-rw-r--r--Modules/_sqlite/util.h6
3 files changed, 6 insertions, 38 deletions
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 1e23daca44..dbe5dd1ec1 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -233,7 +233,7 @@ void pysqlite_connection_dealloc(pysqlite_Connection* self)
/* Clean up if user has not called .close() explicitly. */
if (self->db) {
- SQLITE3_CLOSE(self->db);
+ sqlite3_close_v2(self->db);
}
Py_XDECREF(self->isolation_level);
@@ -338,7 +338,7 @@ pysqlite_connection_close_impl(pysqlite_Connection *self)
pysqlite_do_all_statements(self, ACTION_FINALIZE, 1);
if (self->db) {
- rc = SQLITE3_CLOSE(self->db);
+ rc = sqlite3_close_v2(self->db);
if (rc != SQLITE_OK) {
_pysqlite_seterror(self->db, NULL);
@@ -1687,33 +1687,7 @@ pysqlite_connection_backup_impl(pysqlite_Connection *self,
if (rc == SQLITE_NOMEM) {
(void)PyErr_NoMemory();
} else {
-#if SQLITE_VERSION_NUMBER > 3007015
PyErr_SetString(pysqlite_OperationalError, sqlite3_errstr(rc));
-#else
- switch (rc) {
- case SQLITE_ERROR:
- /* Description of SQLITE_ERROR in SQLite 3.7.14 and older
- releases. */
- PyErr_SetString(pysqlite_OperationalError,
- "SQL logic error or missing database");
- break;
- case SQLITE_READONLY:
- PyErr_SetString(pysqlite_OperationalError,
- "attempt to write a readonly database");
- break;
- case SQLITE_BUSY:
- PyErr_SetString(pysqlite_OperationalError, "database is locked");
- break;
- case SQLITE_LOCKED:
- PyErr_SetString(pysqlite_OperationalError,
- "database table is locked");
- break;
- default:
- PyErr_Format(pysqlite_OperationalError,
- "unrecognized error code: %d", rc);
- break;
- }
-#endif
}
}
diff --git a/Modules/_sqlite/module.c b/Modules/_sqlite/module.c
index cd2eb576c7..6bfb1b73f8 100644
--- a/Modules/_sqlite/module.c
+++ b/Modules/_sqlite/module.c
@@ -29,8 +29,8 @@
#include "microprotocols.h"
#include "row.h"
-#if SQLITE_VERSION_NUMBER < 3007003
-#error "SQLite 3.7.3 or higher required"
+#if SQLITE_VERSION_NUMBER < 3007015
+#error "SQLite 3.7.15 or higher required"
#endif
#include "clinic/module.c.h"
@@ -365,8 +365,8 @@ PyMODINIT_FUNC PyInit__sqlite3(void)
{
PyObject *module;
- if (sqlite3_libversion_number() < 3007003) {
- PyErr_SetString(PyExc_ImportError, MODULE_NAME ": SQLite 3.7.3 or higher required");
+ if (sqlite3_libversion_number() < 3007015) {
+ PyErr_SetString(PyExc_ImportError, MODULE_NAME ": SQLite 3.7.15 or higher required");
return NULL;
}
diff --git a/Modules/_sqlite/util.h b/Modules/_sqlite/util.h
index c5a220e9b0..cff31cda95 100644
--- a/Modules/_sqlite/util.h
+++ b/Modules/_sqlite/util.h
@@ -39,10 +39,4 @@ int _pysqlite_seterror(sqlite3* db, sqlite3_stmt* st);
sqlite_int64 _pysqlite_long_as_int64(PyObject * value);
-#if SQLITE_VERSION_NUMBER >= 3007014
-#define SQLITE3_CLOSE sqlite3_close_v2
-#else
-#define SQLITE3_CLOSE sqlite3_close
-#endif
-
#endif