diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-03-31 11:48:22 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-03-31 11:50:26 -0400 |
commit | a92942a5313c323afc027f69ed3a92cfe818cf76 (patch) | |
tree | 43b71bd172ab756cd0f1de69e1e91b4af09517db /lib/sqlalchemy/dialects/postgresql/base.py | |
parent | 42185a1f3866bfc8ebffa2a6c724face8a2db5dc (diff) | |
download | sqlalchemy-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.py | 26 |
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] |