pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Nagaraj Raj <nagaraj.sf@yahoo.com>
To: Pgsql Performance <pgsql-performance@lists.postgresql.org>
Subject: tables meta data collection
Date: Wed, 3 Mar 2021 01:20:51 +0000 (UTC)
Message-ID: <591365510.2330079.1614734451782@mail.yahoo.com> (raw)
References: <591365510.2330079.1614734451782.ref@mail.yahoo.com>

Hi Everyone,
I was trying to collect table metadata with a description; the use case is that I need to show all columns of the tables whether it has the description or not. 
I tried the below query, but it only gives column details that have a description and ignore others if not. 

Postgres 11 | db<>fiddle


| 
| 
|  | 
Postgres 11 | db<>fiddle

Free online SQL environment for experimenting and sharing.
 |

 |

 |





create table test(id int);create table test1(id int Primary key );comment on column test.id is 'Test descr';

 SELECT c.table_schema,c.table_name,c.column_name,case     when c.domain_name is not null then c.domain_name    when c.data_type='character varying' THEN 'character varying('||c.character_maximum_length||')'    when c.data_type='character' THEN 'character('||c.character_maximum_length||')'     when c.data_type='numeric' THEN 'numeric('||c.numeric_precision||','||c.numeric_scale||')'    else c.data_typeend as data_type,c.is_nullable, (select 'Y' from information_schema.table_constraints tcojoin information_schema.key_column_usage kcu      on kcu.constraint_name = tco.constraint_name     and kcu.constraint_schema = tco.constraint_schema     and kcu.constraint_schema = c.table_schema and kcu.table_name = c.table_name and kcu.column_name = c.column_namewhere tco.constraint_type = 'PRIMARY KEY' ) as is_in_PK,(select distinct 'Y' from information_schema.table_constraints tcojoin information_schema.key_column_usage kcu      on kcu.constraint_name = tco.constraint_name     and kcu.constraint_schema = tco.constraint_schema     and kcu.constraint_schema = c.table_schema and kcu.table_name = c.table_name and kcu.column_name = c.column_namewhere tco.constraint_type = 'FOREIGN KEY' ) as is_in_FK,pgd.description

FROM pg_catalog.pg_statio_all_tables as st  Left outer join pg_catalog.pg_description pgd on (pgd.objoid=st.relid)  left outer join information_schema.columns c on (pgd.objsubid=c.ordinal_position    and  c.table_schema=st.schemaname and c.table_name=st.relname)where c.table_name='test'order by c.table_schema,c.table_name,c.ordinal_position; 

expected formate is :

| table_schema | table_name | column_name | data_type | is_nullable | is_in_pk | is_in_fk | description |



any suggestions?
Thanks,Rj

view thread (2+ messages)  latest in thread

Message-ID: <591365510.2330079.1614734451782@mail.yahoo.com>
Permalink:  ../591365510.2330079.1614734451782@mail.yahoo.com/
Also on:    postgresql.org/message-id/591365510.2330079.1614734451782@mail.yahoo.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: nagaraj.sf@yahoo.com, pgsql-performance@lists.postgresql.org
  Subject: Re: tables meta data collection
  In-Reply-To: <591365510.2330079.1614734451782@mail.yahoo.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox