>Effectively, a composite type that can represent a row in a class
 
That may be true, but users expect to see "user defined types", not tables and 
views. As such, the query driving the display should be something like:
WITH types AS
( SELECT reltype
    FROM pg_class
WHERE relkind = 'c'
)
SELECT * 
  FROM pg_type
 WHERE oid in (SELECT reltype 
                 FROM types)
 ORDER BY typname;

No need to duplicate everything else.



Melvin Davidson 🎸
 I reserve the right to fantasize.  Whether or not you 
 wish to share my fantasy is entirely up to you. 
www.youtube.com/unusedhero/videos
Folk Alley - All Folk - 24 Hours a day 
www.folkalley.com


    On Tuesday, January 30, 2018, 6:08:27 AM EST, Dave Page <dp...@pgadmin.org> 
wrote:  
 
On Tue, Jan 30, 2018 at 10:46 AM, ldrlj1 <russelljan...@masterpeaceltd.com> 
wrote:

Interesting... and thank you!
While I did expect to see tableoid, cmax, xmax, cmin, xmin and ctid in my
tables... I never expected turning on "Show system objects" would show
sequences and tables as Postgres Types.

So I am knowledgeable, can you explain why that happens?

In Postgres, the row schema of objects in pg_class (tables, sequences, views 
etc) is also a "row-type". Effectively, a composite type that can represent a 
row in a class: 
https://www.postgresql.org/docs/10/static/plpgsql-declarations.html#PLPGSQL-DECLARATION-ROWTYPES
-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
  

Reply via email to