From 42d3f8296261079227557c393948c6212b8b10a3 Mon Sep 17 00:00:00 2001 From: IlyaFaer Date: Fri, 7 Jan 2022 12:00:42 +0300 Subject: [PATCH 1/2] fix: connection reset fails when an additional dialect is used --- google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py | 3 ++- test/test_suite.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py index 5e661ca5..eebcd509 100644 --- a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py +++ b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py @@ -48,7 +48,8 @@ @listens_for(Pool, "reset") def reset_connection(dbapi_conn, connection_record): """An event of returning a connection back to a pool.""" - dbapi_conn.connection.staleness = None + if getattr(dbapi_conn.connection, "staleness") is not None: + dbapi_conn.connection.staleness = None # register a method to get a single value of a JSON object diff --git a/test/test_suite.py b/test/test_suite.py index 75fc9a3c..735c0be8 100644 --- a/test/test_suite.py +++ b/test/test_suite.py @@ -1616,6 +1616,9 @@ def test_staleness(self): with self._engine.connect() as connection: assert connection.connection.staleness is None + with self._engine.connect() as connection: + del connection.staleness + class LimitOffsetTest(fixtures.TestBase): """ From 54f5473e47863cb4216c7fd7ad05e062beede663 Mon Sep 17 00:00:00 2001 From: Ilya Gurov Date: Fri, 7 Jan 2022 20:58:05 +0000 Subject: [PATCH 2/2] Update google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py Co-authored-by: Alan Derk <62039254+aderk@users.noreply.github.com> --- google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py index eebcd509..fa704c95 100644 --- a/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py +++ b/google/cloud/sqlalchemy_spanner/sqlalchemy_spanner.py @@ -48,7 +48,7 @@ @listens_for(Pool, "reset") def reset_connection(dbapi_conn, connection_record): """An event of returning a connection back to a pool.""" - if getattr(dbapi_conn.connection, "staleness") is not None: + if getattr(dbapi_conn.connection, "staleness", None) is not None: dbapi_conn.connection.staleness = None