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

Berker Peksag webhook-mailer at python.org
Sun Mar 18 02:24:42 EDT 2018


https://github.com/python/cpython/commit/429ca448d2a36040f229ad9edc67e31fc6d18bf4
commit: 429ca448d2a36040f229ad9edc67e31fc6d18bf4
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: Berker Peksag <berker.peksag at gmail.com>
date: 2018-03-18T09:24:33+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.

(cherry picked from commit bbf7bb7a636b3112ef6f6b31df385606d52517ce)

Co-authored-by: Aviv Palivoda <palaviv at gmail.com>

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