Skip to content

Commit

Permalink
don't calc checksum for read-only transactions
Browse files Browse the repository at this point in the history
  • Loading branch information
IlyaFaer committed Aug 6, 2021
1 parent 0f3e716 commit 8332d49
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
8 changes: 5 additions & 3 deletions google/cloud/spanner_dbapi/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ def _rerun_previous_statements(self):
for statement in self._statements:
res_iter, retried_checksum = self.run_statement(statement, retried=True)
# executing all the completed statements
if statement != self._statements[-1]:
if statement != self._statements[-1] and not self.read_only:
for res in res_iter:
retried_checksum.consume_result(res)

Expand All @@ -229,11 +229,13 @@ def _rerun_previous_statements(self):
while len(retried_checksum) < len(statement.checksum):
try:
res = next(iter(res_iter))
retried_checksum.consume_result(res)
if not self.read_only:
retried_checksum.consume_result(res)
except StopIteration:
break

_compare_checksums(statement.checksum, retried_checksum)
if not self.read_only:
_compare_checksums(statement.checksum, retried_checksum)

def transaction_checkout(self):
"""Get a Cloud Spanner transaction.
Expand Down
6 changes: 3 additions & 3 deletions google/cloud/spanner_dbapi/cursor.py
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ def fetchone(self):

try:
res = next(self)
if not self.connection.autocommit:
if not self.connection.autocommit and not self.connection.read_only:
self._checksum.consume_result(res)
return res
except StopIteration:
Expand All @@ -290,7 +290,7 @@ def fetchall(self):
res = []
try:
for row in self:
if not self.connection.autocommit:
if not self.connection.autocommit and not self.connection.read_only:
self._checksum.consume_result(row)
res.append(row)
except Aborted:
Expand Down Expand Up @@ -319,7 +319,7 @@ def fetchmany(self, size=None):
for i in range(size):
try:
res = next(self)
if not self.connection.autocommit:
if not self.connection.autocommit and not self.connection.read_only:
self._checksum.consume_result(res)
items.append(res)
except StopIteration:
Expand Down

0 comments on commit 8332d49

Please sign in to comment.