Created
October 23, 2018 18:24
-
-
Save YordanGeorgiev/0196bb5667a076ffa6a877703fdc9fec to your computer and use it in GitHub Desktop.
[how-to get postgres columns meta data] how-to get postgres columns meta data #postgres #meta #columns #metadata
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| SELECT DISTINCT | |
| ROW_NUMBER () OVER (ORDER BY pgc.relname , a.attnum) as rowid , | |
| pgc.relname as table_name , | |
| a.attnum as attr, | |
| a.attname as name, | |
| format_type(a.atttypid, a.atttypmod) as typ, | |
| a.attnotnull as notnull, | |
| com.description as comment, | |
| coalesce(i.indisprimary,false) as primary_key, | |
| def.adsrc as default | |
| FROM pg_attribute a | |
| JOIN pg_class pgc ON pgc.oid = a.attrelid | |
| LEFT JOIN pg_index i ON | |
| (pgc.oid = i.indrelid AND i.indkey[0] = a.attnum) | |
| LEFT JOIN pg_description com on | |
| (pgc.oid = com.objoid AND a.attnum = com.objsubid) | |
| LEFT JOIN pg_attrdef def ON | |
| (a.attrelid = def.adrelid AND a.attnum = def.adnum) | |
| LEFT JOIN pg_catalog.pg_namespace n ON n.oid = pgc.relnamespace | |
| WHERE 1=1 | |
| AND pgc.relkind IN ('r','') | |
| AND n.nspname <> 'pg_catalog' | |
| AND n.nspname <> 'information_schema' | |
| AND n.nspname !~ '^pg_toast' | |
| AND a.attnum > 0 AND pgc.oid = a.attrelid | |
| AND pg_table_is_visible(pgc.oid) | |
| AND NOT a.attisdropped | |
| ORDER BY rowid | |
| ; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment