Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit dbb16ee

Browse filesBrowse files
committed
Merge pull request #406 from methane/fix/result-sync
Calling connection's method during multiple result breaks command sync
2 parents 78af0a9 + b837d22 commit dbb16ee
Copy full SHA for dbb16ee

File tree

Expand file treeCollapse file tree

2 files changed

+16
-8
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+16
-8
lines changed

‎pymysql/connections.py

Copy file name to clipboardExpand all lines: pymysql/connections.py
+7-7Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1021,10 +1021,13 @@ def _execute_command(self, command, sql):
10211021

10221022
# If the last query was unbuffered, make sure it finishes before
10231023
# sending new commands
1024-
if self._result is not None and self._result.unbuffered_active:
1025-
warnings.warn("Previous unbuffered result was left incomplete")
1026-
self._result._finish_unbuffered_query()
1027-
self._result = None
1024+
if self._result is not None:
1025+
if self._result.unbuffered_active:
1026+
warnings.warn("Previous unbuffered result was left incomplete")
1027+
self._result._finish_unbuffered_query()
1028+
while self._result.has_next:
1029+
self.next_result()
1030+
self._result = None
10281031

10291032
if isinstance(sql, text_type):
10301033
sql = sql.encode(self.encoding)
@@ -1113,9 +1116,6 @@ def _request_authentication(self):
11131116
self.write_packet(data)
11141117
auth_packet = self._read_packet()
11151118

1116-
#TODO: ok packet or error packet?
1117-
1118-
11191119
def _process_auth(self, plugin_name, auth_packet):
11201120
plugin_class = self._auth_plugin_map.get(plugin_name)
11211121
if not plugin_class:

‎pymysql/tests/test_connection.py

Copy file name to clipboardExpand all lines: pymysql/tests/test_connection.py
+9-1Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ def test_connection_gone_away(self):
418418
with self.assertRaises(pymysql.OperationalError) as cm:
419419
cur.execute("SELECT 1+1")
420420
# error occures while reading, not writing because of socket buffer.
421-
#self.assertEquals(cm.exception.args[0], 2006)
421+
#self.assertEqual(cm.exception.args[0], 2006)
422422
self.assertIn(cm.exception.args[0], (2006, 2013))
423423

424424
def test_init_command(self):
@@ -566,3 +566,11 @@ def test_previous_cursor_not_closed(self):
566566
cur2 = con.cursor()
567567
with self.assertRaises(pymysql.ProgrammingError):
568568
cur2.execute("SELECT 3")
569+
570+
def test_commit_during_multi_result(self):
571+
con = self.connections[0]
572+
cur = con.cursor()
573+
cur.execute("SELECT 1; SELECT 2")
574+
con.commit()
575+
cur.execute("SELECT 3")
576+
self.assertEqual(cur.fetchone()[0], 3)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.