summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/postgresql/base.py
diff options
context:
space:
mode:
authorSebastian Bank <sebastian.bank@uni-leipzig.de>2016-03-17 16:03:56 +0100
committerSebastian Bank <sebastian.bank@uni-leipzig.de>2016-03-17 16:03:56 +0100
commitc0bf58a9b78d24f89c56416d30fae2c2b4e11ab9 (patch)
treec82db612702996d2f6951ee457d1b1d26b797fb0 /lib/sqlalchemy/dialects/postgresql/base.py
parentce7632d6f848d8442e810e5ae5faf2845b57930a (diff)
downloadsqlalchemy-c0bf58a9b78d24f89c56416d30fae2c2b4e11ab9.tar.gz
refactor get_schema_names (apply filter in the query)
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/base.py')
-rw-r--r--lib/sqlalchemy/dialects/postgresql/base.py21
1 files changed, 6 insertions, 15 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py
index c66a3f50b..941a626fb 100644
--- a/lib/sqlalchemy/dialects/postgresql/base.py
+++ b/lib/sqlalchemy/dialects/postgresql/base.py
@@ -1904,21 +1904,12 @@ class PGDialect(default.DefaultDialect):
@reflection.cache
def get_schema_names(self, connection, **kw):
- s = """
- SELECT nspname
- FROM pg_namespace
- ORDER BY nspname
- """
- rp = connection.execute(s)
- # what about system tables?
-
- if util.py2k:
- schema_names = [row[0].decode(self.encoding) for row in rp
- if not row[0].startswith('pg_')]
- else:
- schema_names = [row[0] for row in rp
- if not row[0].startswith('pg_')]
- return schema_names
+ result = connection.execute(
+ sql.text("SELECT nspname FROM pg_namespace "
+ "WHERE nspname NOT LIKE 'pg_%' "
+ "ORDER BY nspname"
+ ).columns(nspname=sqltypes.Unicode))
+ return [name for name, in result]
@reflection.cache
def get_table_names(self, connection, schema=None, **kw):