O Postgres tem outra maneira de armazenar informações sobre o conteúdo do sistema. Isso é chamado de Catálogos do sistema .
No Firebird, sua consulta basicamente retorna uma linha para cada coluna de uma tabela em cada esquema com uma coluna Integer adicional que mapeia para um tipo de dados de campo.
No Postgres usando tabelas do sistema em
pg_catalog
esquema algo semelhante pode ser alcançado usando esta consulta:SELECT
TRIM(c.relname) AS table_name, TRIM(a.attname) AS column_name, a.atttypid AS field_type
FROM pg_class c
LEFT JOIN pg_attribute a ON
c.oid = a.attrelid
AND a.attnum > 0 -- only ordinary columns, without system ones
WHERE c.relkind = 'r' -- only tables
ORDER BY 1,2
A consulta acima também retorna os catálogos do sistema. Se você deseja excluir você precisa adicionar outro JOIN ao
pg_namespace
e uma cláusula where com pg_namespace.nspname <> 'pg_catalog'
, porque este é o esquema em que os catálogos do sistema são armazenados. Se você também quiser ver os nomes dos tipos de dados em vez de seus números de representantes, adicione um JOIN a
pg_type
. Esquema de informações consiste na coleção de visualizações. Na maioria dos casos, você não precisa de toda a consulta SQL que está por trás da exibição, portanto, o uso de tabelas do sistema proporcionará um melhor desempenho. No entanto, você pode inspecionar a definição de visualizações, apenas para começar nas tabelas e condições usadas para formar uma saída.