[Python-checkins] bpo-27645: Fix version number in 'database in transaction' fallback (GH-6131)

Berker Peksag webhook-mailer at python.org
Sat Mar 17 20:49:04 EDT 2018


https://github.com/python/cpython/commit/bbf7bb7a636b3112ef6f6b31df385606d52517ce
commit: bbf7bb7a636b3112ef6f6b31df385606d52517ce
branch: master
author: Aviv Palivoda <palaviv at gmail.com>
committer: Berker Peksag <berker.peksag at gmail.com>
date: 2018-03-18T03:48:55+03:00
summary:

bpo-27645: Fix version number in 'database in transaction' fallback (GH-6131)

It was actually fixed in SQLite 3.8.8, not 3.8.7.

files:
M Lib/sqlite3/test/backup.py
M Modules/_sqlite/connection.c

diff --git a/Lib/sqlite3/test/backup.py b/Lib/sqlite3/test/backup.py
index 2a2148937413..903bacf49030 100644
--- a/Lib/sqlite3/test/backup.py
+++ b/Lib/sqlite3/test/backup.py
@@ -37,14 +37,12 @@ def test_bad_target_closed_connection(self):
             self.cx.backup(bck)
 
     def test_bad_target_in_transaction(self):
-        if sqlite.sqlite_version_info == (3, 8, 7, 1):
-            self.skipTest('skip until we debug https://bugs.python.org/issue27645#msg313562')
         bck = sqlite.connect(':memory:')
         bck.execute('CREATE TABLE bar (key INTEGER)')
         bck.executemany('INSERT INTO bar (key) VALUES (?)', [(3,), (4,)])
         with self.assertRaises(sqlite.OperationalError) as cm:
             self.cx.backup(bck)
-        if sqlite.sqlite_version_info < (3, 8, 7):
+        if sqlite.sqlite_version_info < (3, 8, 8):
             self.assertEqual(str(cm.exception), 'target is in transaction')
 
     def test_keyword_only_args(self):
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 14b6a2774e78..dc5061c1d91d 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -1481,8 +1481,8 @@ pysqlite_connection_backup(pysqlite_Connection *self, PyObject *args, PyObject *
         return NULL;
     }
 
-#if SQLITE_VERSION_NUMBER < 3008007
-    /* Since 3.8.7 this is already done, per commit
+#if SQLITE_VERSION_NUMBER < 3008008
+    /* Since 3.8.8 this is already done, per commit
        https://www.sqlite.org/src/info/169b5505498c0a7e */
     if (!sqlite3_get_autocommit(((pysqlite_Connection *)target)->db)) {
         PyErr_SetString(pysqlite_OperationalError, "target is in transaction");



More information about the Python-checkins mailing list