Skip to content

Commit 6021c78

Browse files
committed
[DB-12019] ResultSet will be closed with cursor.close()
1 parent 2fee98f commit 6021c78

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

pynuodb/cursor.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ def close(self):
6969
"""Closes the cursor into the database."""
7070
self._check_closed()
7171
self._statement_cache.shutdown()
72+
if self._result_set:
73+
self._result_set.close(self.session)
7274
self.closed = True
7375

7476
def _check_closed(self):
@@ -79,10 +81,7 @@ def _check_closed(self):
7981
raise Error("connection is closed")
8082

8183
def _reset(self):
82-
"""Resets SQL transaction variables.
83-
84-
Also closes any open statements and result sets.
85-
"""
84+
"""Resets SQL transaction variables."""
8685
self.description = None
8786
self.rowcount = -1
8887
self.colcount = -1

pynuodb/encodedsession.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,13 @@ def close_statement(self, statement):
271271
self._putMessageId(protocol.CLOSESTATEMENT).putInt(statement.handle)
272272
self._exchangeMessages(False)
273273

274+
def close_result_set(self, result_set):
275+
"""
276+
:type result_set: ResultSet
277+
"""
278+
self._putMessageId(protocol.CLOSERESULTSET).putInt(result_set.handle)
279+
self._exchangeMessages(False)
280+
274281
def create_prepared_statement(self, query):
275282
"""
276283
:type query: str

pynuodb/result_set.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,9 @@ def fetchone(self, session):
3535
res = self.results[self.results_idx]
3636
self.results_idx += 1
3737
return res
38+
39+
def close(self, session):
40+
"""
41+
:type session EncodedSession
42+
"""
43+
session.close_result_set(self)

0 commit comments

Comments
 (0)