diff options
author | Darik Gamble <darik.gamble@gmail.com> | 2015-02-12 11:26:02 -0500 |
---|---|---|
committer | Darik Gamble <darik.gamble@gmail.com> | 2015-02-12 11:26:02 -0500 |
commit | a305309b30ecf5b260264d9fe9fae6ee1b44c0ac (patch) | |
tree | aaccc3865899fa693314ef92f17e124dc18d8d7f | |
parent | 2576ce1bf59b6b10c22118e5e85181267c78227f (diff) |
\dt query shouldn't restrict schemas if schema qualifer supplied
Otherwise it's impossible to list tables from e.g. pg_catalog, even if pg_catalog is explicitly specified
-rw-r--r-- | pgcli/packages/pgspecial.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/pgcli/packages/pgspecial.py b/pgcli/packages/pgspecial.py index 48efb82a..3c8d0d9e 100644 --- a/pgcli/packages/pgspecial.py +++ b/pgcli/packages/pgspecial.py @@ -81,16 +81,19 @@ def list_objects(cur, pattern, verbose, relkinds): FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace - WHERE c.relkind = ANY(%s) - AND n.nspname <> 'pg_catalog' - AND n.nspname <> 'information_schema' - AND n.nspname !~ '^pg_toast' ''' + WHERE c.relkind = ANY(%s) ''' params = [relkinds] if schema_pattern: sql += ' AND n.nspname ~ %s' params.append(schema_pattern) + else: + sql += ''' + AND n.nspname <> 'pg_catalog' + AND n.nspname <> 'information_schema' + AND n.nspname !~ '^pg_toast' + AND pg_catalog.pg_table_is_visible(c.oid) ''' if table_pattern: sql += ' AND c.relname ~ %s' |