join_brackets2.sql 1.3 KB

123456789101112131415161718192021
  1. --!syntax_pg
  2. SELECT DISTINCT att.attname as name, att.attnum as OID, pg_catalog.format_type(ty.oid,NULL) AS datatype,
  3. att.attnotnull as not_null, att.atthasdef as has_default_val, des.description, seq.seqtypid
  4. FROM pg_catalog.pg_attribute att
  5. JOIN pg_catalog.pg_type ty ON ty.oid=atttypid
  6. JOIN pg_catalog.pg_namespace tn ON tn.oid=ty.typnamespace
  7. JOIN pg_catalog.pg_class cl ON cl.oid=att.attrelid
  8. JOIN pg_catalog.pg_namespace na ON na.oid=cl.relnamespace
  9. LEFT OUTER JOIN pg_catalog.pg_type et ON et.oid=ty.typelem
  10. LEFT OUTER JOIN pg_catalog.pg_attrdef def ON adrelid=att.attrelid AND adnum=att.attnum
  11. LEFT OUTER JOIN (pg_catalog.pg_depend JOIN pg_catalog.pg_class cs ON classid='pg_class'::regclass AND objid=cs.oid AND cs.relkind='S') ON refobjid=att.attrelid AND refobjsubid::int4=att.attnum
  12. LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=cs.relnamespace
  13. LEFT OUTER JOIN pg_catalog.pg_index pi ON pi.indrelid=att.attrelid AND indisprimary
  14. LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=att.attrelid AND des.objsubid::int4=att.attnum AND des.classoid='pg_class'::regclass)
  15. LEFT OUTER JOIN pg_catalog.pg_sequence seq ON cs.oid=seq.seqrelid
  16. WHERE
  17. att.attrelid = 12302::oid
  18. AND att.attnum > 0
  19. AND att.attisdropped IS FALSE
  20. ORDER BY att.attnum