psql listTables
От | Thomas F.O'Connell |
---|---|
Тема | psql listTables |
Дата | |
Msg-id | 854BA321-DCE9-11D8-B7B7-000D93AE0944@sitening.com обсуждение исходный текст |
Ответы |
Re: psql listTables
|
Список | pgsql-hackers |
In examining the output of psql -E to get some templates for some queries I'm developing, I noticed in describe.c that there is logic to inform the final IN clause that gets printed for relkind but no similar logic for the CASE clause. Here's what I get from a \d in 7.4.1: SELECT n.nspname as "Schema", c.relname as "Name",CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special'END as "Type", u.usename as "Owner" FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_user u ON u.usesysid = c.relowner LEFT JOIN pg_catalog.pg_namespacen ON n.oid = c.relnamespace WHERE c.relkind IN ('r','v','S','') AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND pg_catalog.pg_table_is_visible(c.oid) ORDER BY 1,2; Such that the IN clause for c.relkind seems to preclude two of the options ('i' and 's') in the CASE. I realize this is a trivial issue, but it seems like logic could be added to the CASE statement to prevent irrelevant SELECT material from being output. Couldn't the SELECT clause include if(showTables), etc.? -tfo
В списке pgsql-hackers по дате отправления: