summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/postgresql/base.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-03-31 11:48:22 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2021-03-31 11:50:26 -0400
commita92942a5313c323afc027f69ed3a92cfe818cf76 (patch)
tree43b71bd172ab756cd0f1de69e1e91b4af09517db /lib/sqlalchemy/dialects/postgresql/base.py
parent42185a1f3866bfc8ebffa2a6c724face8a2db5dc (diff)
downloadsqlalchemy-a92942a5313c323afc027f69ed3a92cfe818cf76.tar.gz
Repair PGInspector
Fixed issue where the PostgreSQL :class:`.PGInspector`, when generated against an :class:`_engine.Engine`, would fail for ``.get_enums()``, ``.get_view_names()``, ``.get_foreign_table_names()`` and ``.get_table_oid()`` when used against a "future" style engine and not the connection directly. Fixes: #6170 Change-Id: I8c3abdfb758305c2f7a96002d3644729f29c998b
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/base.py')
-rw-r--r--lib/sqlalchemy/dialects/postgresql/base.py26
1 files changed, 17 insertions, 9 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py
index ba7774590..0854214d0 100644
--- a/lib/sqlalchemy/dialects/postgresql/base.py
+++ b/lib/sqlalchemy/dialects/postgresql/base.py
@@ -2902,9 +2902,10 @@ class PGInspector(reflection.Inspector):
def get_table_oid(self, table_name, schema=None):
"""Return the OID for the given table name."""
- return self.dialect.get_table_oid(
- self.bind, table_name, schema, info_cache=self.info_cache
- )
+ with self._operation_context() as conn:
+ return self.dialect.get_table_oid(
+ conn, table_name, schema, info_cache=self.info_cache
+ )
def get_enums(self, schema=None):
"""Return a list of ENUM objects.
@@ -2925,7 +2926,8 @@ class PGInspector(reflection.Inspector):
"""
schema = schema or self.default_schema_name
- return self.dialect._load_enums(self.bind, schema)
+ with self._operation_context() as conn:
+ return self.dialect._load_enums(conn, schema)
def get_foreign_table_names(self, schema=None):
"""Return a list of FOREIGN TABLE names.
@@ -2939,7 +2941,8 @@ class PGInspector(reflection.Inspector):
"""
schema = schema or self.default_schema_name
- return self.dialect._get_foreign_table_names(self.bind, schema)
+ with self._operation_context() as conn:
+ return self.dialect._get_foreign_table_names(conn, schema)
def get_view_names(self, schema=None, include=("plain", "materialized")):
"""Return all view names in `schema`.
@@ -2955,9 +2958,10 @@ class PGInspector(reflection.Inspector):
"""
- return self.dialect.get_view_names(
- self.bind, schema, info_cache=self.info_cache, include=include
- )
+ with self._operation_context() as conn:
+ return self.dialect.get_view_names(
+ conn, schema, info_cache=self.info_cache, include=include
+ )
class CreateEnumType(schema._CreateDropBase):
@@ -3481,7 +3485,11 @@ class PGDialect(default.DefaultDialect):
"JOIN pg_namespace n ON n.oid = c.relnamespace "
"WHERE n.nspname = :schema AND c.relkind = 'f'"
).columns(relname=sqltypes.Unicode),
- schema=schema if schema is not None else self.default_schema_name,
+ dict(
+ schema=schema
+ if schema is not None
+ else self.default_schema_name
+ ),
)
return [name for name, in result]