From: Carl Friedrich Bolz-Tereick <cfbolz@gmx.de>
Date: Mon, 20 Apr 2020 11:20:18 -0700
Subject: Fix opening of Connection with isolation_level=None in the
 constructor

Regression in 7.3.1

Bug-Upstream: https://foss.heptapod.net/pypy/pypy/issues/3210
Origin: https://foss.heptapod.net/pypy/pypy/commit/fbbe06715eb48df1a03640672d99335695d3e47c
---
 extra_tests/test_sqlite3.py | 6 ++++++
 lib_pypy/_sqlite3.py        | 1 +
 2 files changed, 7 insertions(+)

diff --git a/extra_tests/test_sqlite3.py b/extra_tests/test_sqlite3.py
index 25d7720..142a08c 100644
--- a/extra_tests/test_sqlite3.py
+++ b/extra_tests/test_sqlite3.py
@@ -331,3 +331,9 @@ def test_cursor_del(con):
     con.execute("SELECT * FROM foo")
     import gc; gc.collect()
     con.execute("DROP TABLE foo")  # no error
+
+def test_isolation_bug():
+    con = _sqlite3.connect(":memory:", isolation_level=None)
+    cur = con.cursor()
+    cur.execute("create table foo(x);")
+
diff --git a/lib_pypy/_sqlite3.py b/lib_pypy/_sqlite3.py
index 75b84f7..cb7b535 100644
--- a/lib_pypy/_sqlite3.py
+++ b/lib_pypy/_sqlite3.py
@@ -699,6 +699,7 @@ class Connection(object):
     def __set_isolation_level(self, val):
         if val is None:
             self.commit()
+            self._begin_statement = None
         else:
             if not isinstance(val, str):
                 raise TypeError("isolation level must be " \
