Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
6ed442c4
Commit
6ed442c4
authored
Aug 26, 2016
by
Berker Peksag
Browse files
Options
Browse Files
Download
Plain Diff
Issue #10513: Merge from 3.5
parents
f74c33ad
cc9afa9b
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
1 deletion
+34
-1
Lib/sqlite3/test/regression.py
Lib/sqlite3/test/regression.py
+31
-0
Misc/NEWS
Misc/NEWS
+3
-0
Modules/_sqlite/connection.c
Modules/_sqlite/connection.c
+0
-1
No files found.
Lib/sqlite3/test/regression.py
View file @
6ed442c4
...
...
@@ -322,6 +322,37 @@ class RegressionTests(unittest.TestCase):
self
.
assertRaises
(
ValueError
,
cur
.
execute
,
"
\
0
select 2"
)
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"
)):
with
self
.
subTest
(
i
=
i
,
row
=
row
):
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
():
regression_suite
=
unittest
.
makeSuite
(
RegressionTests
,
"Check"
)
...
...
Misc/NEWS
View file @
6ed442c4
...
...
@@ -46,6 +46,9 @@ Core and Builtins
Library
-------
- Issue #10513: Fix a regression in Connection.commit(). Statements should
not be reset after a commit.
- Issue #12319: Chunked transfer encoding support added to
http.client.HTTPConnection requests. The
urllib.request.AbstractHTTPHandler class does not enforce a Content-Length
...
...
Modules/_sqlite/connection.c
View file @
6ed442c4
...
...
@@ -425,7 +425,6 @@ PyObject* pysqlite_connection_commit(pysqlite_Connection* self, PyObject* args)
}
if
(
self
->
inTransaction
)
{
pysqlite_do_all_statements
(
self
,
ACTION_RESET
,
0
);
Py_BEGIN_ALLOW_THREADS
rc
=
sqlite3_prepare
(
self
->
db
,
"COMMIT"
,
-
1
,
&
statement
,
&
tail
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment