You can fully describe the table using postgres with the following query:
SELECT a.attname as Column, pg_catalog.format_type(a.atttypid, a.atttypmod) as Datatype FROM pg_catalog.pg_attribute a WHERE a.attnum > 0 AND NOT a.attisdropped AND a.attrelid = ( SELECT c.oid FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relname ~ '^(TABLENAME)$' AND pg_catalog.pg_table_is_visible(c.oid) )
In this case, you will get the column names and data type.
You can also start the psql client using the -E option
$ psql -E
And then a simple \d mytable will print the queries used by postgres to describe the table. It works for every psql description.
Alexandre GUIDET
source share