changeset: 101941:4502cff170c2 parent: 101939:187b2bc0fe26 parent: 101940:12bf71b9f1cd user: Berker Peksag date: Sun Jun 12 14:10:24 2016 +0300 files: Misc/NEWS Modules/_sqlite/connection.c description: Issue #27190: Merge from 3.5 diff -r 187b2bc0fe26 -r 4502cff170c2 Lib/sqlite3/test/dbapi.py --- a/Lib/sqlite3/test/dbapi.py Sun Jun 12 13:42:12 2016 +0300 +++ b/Lib/sqlite3/test/dbapi.py Sun Jun 12 14:10:24 2016 +0300 @@ -180,6 +180,12 @@ with self.assertRaises(sqlite.OperationalError): 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): def setUp(self): diff -r 187b2bc0fe26 -r 4502cff170c2 Misc/NEWS --- a/Misc/NEWS Sun Jun 12 13:42:12 2016 +0300 +++ b/Misc/NEWS Sun Jun 12 14:10:24 2016 +0300 @@ -10,6 +10,9 @@ 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 function with generalized unpacking (PEP 448) and conflicting keyword names could cause undefined behavior. diff -r 187b2bc0fe26 -r 4502cff170c2 Modules/_sqlite/connection.c --- a/Modules/_sqlite/connection.c Sun Jun 12 13:42:12 2016 +0300 +++ b/Modules/_sqlite/connection.c Sun Jun 12 14:10:24 2016 +0300 @@ -164,6 +164,10 @@ #ifdef WITH_THREAD self->thread_ident = PyThread_get_thread_ident(); #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->function_pinboard = PyDict_New();