diff options
author | Sebastian Bank <sebastian.bank@uni-leipzig.de> | 2016-03-17 15:51:06 +0100 |
---|---|---|
committer | Sebastian Bank <sebastian.bank@uni-leipzig.de> | 2016-03-17 15:51:06 +0100 |
commit | ce7632d6f848d8442e810e5ae5faf2845b57930a (patch) | |
tree | c2e17d2eda7c2125743c51dee0f9df49a5682a51 | |
parent | cf8f819c434ba135d15b9eb0ea82a5409890a7fd (diff) | |
download | sqlalchemy-ce7632d6f848d8442e810e5ae5faf2845b57930a.tar.gz |
refactor table_names methods dropping sql string interpolation and subselect
-rw-r--r-- | lib/sqlalchemy/dialects/postgresql/base.py | 40 |
1 files changed, 12 insertions, 28 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 887940200..c66a3f50b 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -1922,39 +1922,23 @@ class PGDialect(default.DefaultDialect): @reflection.cache def get_table_names(self, connection, schema=None, **kw): - if schema is not None: - current_schema = schema - else: - current_schema = self.default_schema_name - result = connection.execute( - sql.text("SELECT relname FROM pg_class c " - "WHERE relkind = 'r' " - "AND '%s' = (select nspname from pg_namespace n " - "where n.oid = c.relnamespace) " % - current_schema, - typemap={'relname': sqltypes.Unicode} - ) - ) - return [row[0] for row in result] + sql.text("SELECT c.relname FROM pg_class c " + "JOIN pg_namespace n ON n.oid = c.relnamespace " + "WHERE n.nspname = :schema AND c.relkind = 'r'" + ).columns(relname=sqltypes.Unicode), + schema=schema if schema is not None else self.default_schema_name) + return [name for name, in result] @reflection.cache def _get_foreign_table_names(self, connection, schema=None, **kw): - if schema is not None: - current_schema = schema - else: - current_schema = self.default_schema_name - result = connection.execute( - sql.text("SELECT relname FROM pg_class c " - "WHERE relkind = 'f' " - "AND '%s' = (select nspname from pg_namespace n " - "where n.oid = c.relnamespace) " % - current_schema, - typemap={'relname': sqltypes.Unicode} - ) - ) - return [row[0] for row in result] + sql.text("SELECT c.relname FROM pg_class c " + "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) + return [name for name, in result] @reflection.cache def get_view_names(self, connection, schema=None, include=('plain', 'materialized'), **kw): |