From f91a25cd8191f026dd43c0a2475cda8a56d65c19 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 17 Jan 2023 09:44:05 -0500 Subject: [PATCH] pass driver_connection to TypeInfo.fetch() Fixed regression where psycopg3 changed an API call as of version 3.1.8 to expect a specific object type that was previously not enforced, breaking connectivity for the psycopg3 dialect. Fixes: #9106 Change-Id: Ibb42f84b1086f30173aeb6e1f3256c56d129fe6e --- doc/build/changelog/unreleased_20/9106.rst | 7 +++++++ lib/sqlalchemy/dialects/postgresql/psycopg.py | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 doc/build/changelog/unreleased_20/9106.rst diff --git a/doc/build/changelog/unreleased_20/9106.rst b/doc/build/changelog/unreleased_20/9106.rst new file mode 100644 index 0000000000..02e0495bcc --- /dev/null +++ b/doc/build/changelog/unreleased_20/9106.rst @@ -0,0 +1,7 @@ +.. change:: + :tags: bug, postgresql + :tickets: 9106 + + Fixed regression where psycopg3 changed an API call as of version 3.1.8 to + expect a specific object type that was previously not enforced, breaking + connectivity for the psycopg3 dialect. diff --git a/lib/sqlalchemy/dialects/postgresql/psycopg.py b/lib/sqlalchemy/dialects/postgresql/psycopg.py index ead157b71b..3f11556cf5 100644 --- a/lib/sqlalchemy/dialects/postgresql/psycopg.py +++ b/lib/sqlalchemy/dialects/postgresql/psycopg.py @@ -339,7 +339,7 @@ class PGDialect_psycopg(_PGDialect_common_psycopg): def _type_info_fetch(self, connection, name): from psycopg.types import TypeInfo - return TypeInfo.fetch(connection.connection, name) + return TypeInfo.fetch(connection.connection.driver_connection, name) def initialize(self, connection): super().initialize(connection) @@ -717,7 +717,7 @@ class PGDialectAsync_psycopg(PGDialect_psycopg): from psycopg.types import TypeInfo adapted = connection.connection - return adapted.await_(TypeInfo.fetch(adapted._connection, name)) + return adapted.await_(TypeInfo.fetch(adapted.driver_connection, name)) def _do_isolation_level(self, connection, autocommit, isolation_level): connection.set_autocommit(autocommit) -- 2.47.2