From 7ce685d76033fa8a46d4ccf8488af68ee8947ced Mon Sep 17 00:00:00 2001 From: HemangChothani <50404902+HemangChothani@users.noreply.github.com> Date: Fri, 29 Jan 2021 03:21:54 -0500 Subject: [PATCH] fix: override django autocommit to spanner (#583) --- django_spanner/base.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/django_spanner/base.py b/django_spanner/base.py index 0ede662571..cac9abd315 100644 --- a/django_spanner/base.py +++ b/django_spanner/base.py @@ -156,9 +156,11 @@ def get_new_connection(self, conn_params): def init_connection_state(self): """Initialize the state of the existing connection.""" + autocommit = self.connection.autocommit self.connection.close() database = self.connection.database self.connection.__init__(self.instance, database) + self.connection.autocommit = autocommit def create_cursor(self, name=None): """Create a new Database cursor. @@ -196,3 +198,12 @@ def is_usable(self): return False return True + + def _start_transaction_under_autocommit(self): + """ + Start a transaction explicitly in autocommit mode. + + Staying in autocommit mode works around a bug that breaks + save points when autocommit is disabled by django. + """ + self.connection.cursor().execute("SELECT 1")