summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/build/changelog/unreleased_20/9106.rst7
-rw-r--r--lib/sqlalchemy/dialects/postgresql/psycopg.py4
2 files changed, 9 insertions, 2 deletions
diff --git a/doc/build/changelog/unreleased_20/9106.rst b/doc/build/changelog/unreleased_20/9106.rst
new file mode 100644
index 000000000..02e0495bc
--- /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 ead157b71..3f11556cf 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)