Commit a5338f38 authored by Berker Peksag's avatar Berker Peksag

Issue #27190: Raise NotSupportedError if sqlite3 is older than 3.3.1

Patch by Dave Sawyer.
parent 15f0f421
...@@ -180,6 +180,12 @@ class ConnectionTests(unittest.TestCase): ...@@ -180,6 +180,12 @@ class ConnectionTests(unittest.TestCase):
with self.assertRaises(sqlite.OperationalError): with self.assertRaises(sqlite.OperationalError):
cx.execute('insert into test(id) values(1)') cx.execute('insert into test(id) values(1)')
def CheckSameThreadErrorOnOldVersion(self):
if sqlite.sqlite_version_info >= (3, 3, 1):
self.skipTest('test needs sqlite3 versions older than 3.3.1')
with self.assertRaises(sqlite.NotSupportedError) as cm:
sqlite.connect(':memory:', check_same_thread=False)
self.assertEqual(str(cm.exception), 'shared connections not available')
class CursorTests(unittest.TestCase): class CursorTests(unittest.TestCase):
def setUp(self): def setUp(self):
......
...@@ -10,6 +10,9 @@ Release date: tba ...@@ -10,6 +10,9 @@ Release date: tba
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #27190: Raise NotSupportedError if sqlite3 is older than 3.3.1.
Patch by Dave Sawyer.
- Issue #27286: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling - Issue #27286: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling
function with generalized unpacking (PEP 448) and conflicting keyword names function with generalized unpacking (PEP 448) and conflicting keyword names
could cause undefined behavior. could cause undefined behavior.
......
...@@ -164,6 +164,10 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject ...@@ -164,6 +164,10 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
#ifdef WITH_THREAD #ifdef WITH_THREAD
self->thread_ident = PyThread_get_thread_ident(); self->thread_ident = PyThread_get_thread_ident();
#endif #endif
if (!check_same_thread && sqlite3_libversion_number() < 3003001) {
PyErr_SetString(pysqlite_NotSupportedError, "shared connections not available");
return -1;
}
self->check_same_thread = check_same_thread; self->check_same_thread = check_same_thread;
self->function_pinboard = PyDict_New(); self->function_pinboard = PyDict_New();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment