From 9d0f3fee4c1c423bee6f2c729ed5844079f7f2b9 Mon Sep 17 00:00:00 2001 From: IlyaFaer Date: Wed, 25 May 2022 13:19:46 +0400 Subject: [PATCH] fix: connection is always rolled back on returning to a pool --- google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py index 9a1209b2..68a4a759 100644 --- a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py +++ b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py @@ -48,7 +48,9 @@ @listens_for(Pool, "reset") def reset_connection(dbapi_conn, connection_record): """An event of returning a connection back to a pool.""" - dbapi_conn.connection.rollback() + if not dbapi_conn.connection.inside_transaction: + dbapi_conn.connection.rollback() + if getattr(dbapi_conn.connection, "staleness", None) is not None: dbapi_conn.connection.staleness = None