Commit 0897a557 authored by Benjamin Peterson's avatar Benjamin Peterson

revert 030e100f048a (#29006, #10513)

parent 2f7d13c6
...@@ -328,36 +328,6 @@ class RegressionTests(unittest.TestCase): ...@@ -328,36 +328,6 @@ class RegressionTests(unittest.TestCase):
self.assertRaises(ValueError, cur.execute, " \0select 2") self.assertRaises(ValueError, cur.execute, " \0select 2")
self.assertRaises(ValueError, cur.execute, "select 2\0") self.assertRaises(ValueError, cur.execute, "select 2\0")
def CheckCommitCursorReset(self):
"""
Connection.commit() did reset cursors, which made sqlite3
to return rows multiple times when fetched from cursors
after commit. See issues 10513 and 23129 for details.
"""
con = sqlite.connect(":memory:")
con.executescript("""
create table t(c);
create table t2(c);
insert into t values(0);
insert into t values(1);
insert into t values(2);
""")
self.assertEqual(con.isolation_level, "")
counter = 0
for i, row in enumerate(con.execute("select c from t")):
con.execute("insert into t2(c) values (?)", (i,))
con.commit()
if counter == 0:
self.assertEqual(row[0], 0)
elif counter == 1:
self.assertEqual(row[0], 1)
elif counter == 2:
self.assertEqual(row[0], 2)
counter += 1
self.assertEqual(counter, 3, "should have returned exactly three rows")
def suite(): def suite():
regression_suite = unittest.makeSuite(RegressionTests, "Check") regression_suite = unittest.makeSuite(RegressionTests, "Check")
......
...@@ -15,6 +15,9 @@ Core and Builtins ...@@ -15,6 +15,9 @@ Core and Builtins
Library Library
------- -------
- Issue #29006: Revert change from issue #10513 for making sqlite more liable to
emit "database table is locked" errors.
- Issue #29094: Offsets in a ZIP file created with extern file object and mode - Issue #29094: Offsets in a ZIP file created with extern file object and mode
"w" now are relative to the start of the file. "w" now are relative to the start of the file.
...@@ -225,9 +228,6 @@ Library ...@@ -225,9 +228,6 @@ Library
- Issue #19884: Avoid spurious output on OS X with Gnu Readline. - Issue #19884: Avoid spurious output on OS X with Gnu Readline.
- Issue #10513: Fix a regression in Connection.commit(). Statements should
not be reset after a commit.
- Issue #2466: posixpath.ismount now correctly recognizes mount points which - Issue #2466: posixpath.ismount now correctly recognizes mount points which
the user does not have permission to access. the user does not have permission to access.
......
...@@ -467,6 +467,7 @@ PyObject* pysqlite_connection_commit(pysqlite_Connection* self, PyObject* args) ...@@ -467,6 +467,7 @@ PyObject* pysqlite_connection_commit(pysqlite_Connection* self, PyObject* args)
} }
if (self->inTransaction) { if (self->inTransaction) {
pysqlite_do_all_statements(self, ACTION_RESET, 0);
Py_BEGIN_ALLOW_THREADS Py_BEGIN_ALLOW_THREADS
rc = sqlite3_prepare(self->db, "COMMIT", -1, &statement, &tail); rc = sqlite3_prepare(self->db, "COMMIT", -1, &statement, &tail);
......
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