Guest User

Untitled

a guest
May 4th, 2020
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.04 KB | None | 0 0
  1. SELECT rel.oid, rel.relname AS name, rel.reltablespace AS spcoid,rel.relacl AS relacl_str,
  2. (CASE WHEN length(spc.spcname) > 0 OR rel.relkind = 'p' THEN spc.spcname ELSE
  3. (SELECT sp.spcname FROM pg_database dtb
  4. JOIN pg_tablespace sp ON dtb.dattablespace=sp.oid
  5. WHERE dtb.oid = 16384::oid)
  6. END) as spcname,
  7. (select nspname FROM pg_namespace WHERE oid = 2200::oid ) as schema,
  8. pg_get_userbyid(rel.relowner) AS relowner, rel.relkind,
  9. (CASE WHEN rel.relkind = 'p' THEN true ELSE false END) AS is_partitioned,
  10. rel.relhassubclass, rel.reltuples::bigint, des.description, con.conname, con.conkey,
  11. EXISTS(select 1 FROM pg_trigger
  12. JOIN pg_proc pt ON pt.oid=tgfoid AND pt.proname='logtrigger'
  13. JOIN pg_proc pc ON pc.pronamespace=pt.pronamespace AND pc.proname='slonyversion'
  14. WHERE tgrelid=rel.oid) AS isrepl,
  15. (SELECT count(*) FROM pg_trigger WHERE tgrelid=rel.oid AND tgisinternal = FALSE) AS triggercount,
  16. (SELECT ARRAY(SELECT CASE WHEN (nspname NOT LIKE 'pg\_%') THEN
  17. quote_ident(nspname)||'.'||quote_ident(c.relname)
  18. ELSE quote_ident(c.relname) END AS inherited_tables
  19. FROM pg_inherits i
  20. JOIN pg_class c ON c.oid = i.inhparent
  21. JOIN pg_namespace n ON n.oid=c.relnamespace
  22. WHERE i.inhrelid = rel.oid ORDER BY inhseqno)) AS coll_inherits,
  23. (SELECT count(*)
  24. FROM pg_inherits i
  25. JOIN pg_class c ON c.oid = i.inhparent
  26. JOIN pg_namespace n ON n.oid=c.relnamespace
  27. WHERE i.inhrelid = rel.oid) AS inherited_tables_cnt,
  28. (CASE WHEN rel.relpersistence = 'u' THEN true ELSE false END) AS relpersistence,
  29. substring(array_to_string(rel.reloptions, ',') FROM 'fillfactor=([0-9]*)') AS fillfactor,
  30. substring(array_to_string(rel.reloptions, ',') FROM 'parallel_workers=([0-9]*)') AS parallel_workers,
  31. substring(array_to_string(rel.reloptions, ',') FROM 'toast_tuple_target=([0-9]*)') AS toast_tuple_target,
  32. (CASE WHEN (substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true')
  33. THEN true ELSE false END) AS autovacuum_enabled,
  34. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS autovacuum_vacuum_threshold,
  35. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS autovacuum_vacuum_scale_factor,
  36. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS autovacuum_analyze_threshold,
  37. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_analyze_scale_factor=([0-9]*[.]?[0-9]*)') AS autovacuum_analyze_scale_factor,
  38. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_cost_delay=([0-9]*)') AS autovacuum_vacuum_cost_delay,
  39. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_vacuum_cost_limit=([0-9]*)') AS autovacuum_vacuum_cost_limit,
  40. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS autovacuum_freeze_min_age,
  41. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS autovacuum_freeze_max_age,
  42. substring(array_to_string(rel.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS autovacuum_freeze_table_age,
  43. (CASE WHEN (substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_enabled=([a-z|0-9]*)') = 'true')
  44. THEN true ELSE false END) AS toast_autovacuum_enabled,
  45. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_threshold=([0-9]*)') AS toast_autovacuum_vacuum_threshold,
  46. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_scale_factor=([0-9]*[.]?[0-9]*)') AS toast_autovacuum_vacuum_scale_factor,
  47. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_analyze_threshold=([0-9]*)') AS toast_autovacuum_analyze_threshold,
  48. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_analyze_scale_factor=([0-9]*[.]?[0-9]*)') AS toast_autovacuum_analyze_scale_factor,
  49. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_cost_delay=([0-9]*)') AS toast_autovacuum_vacuum_cost_delay,
  50. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_vacuum_cost_limit=([0-9]*)') AS toast_autovacuum_vacuum_cost_limit,
  51. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_min_age=([0-9]*)') AS toast_autovacuum_freeze_min_age,
  52. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_max_age=([0-9]*)') AS toast_autovacuum_freeze_max_age,
  53. substring(array_to_string(tst.reloptions, ',') FROM 'autovacuum_freeze_table_age=([0-9]*)') AS toast_autovacuum_freeze_table_age,
  54. array_to_string(rel.reloptions, ',') AS table_vacuum_settings_str,
  55. array_to_string(tst.reloptions, ',') AS toast_table_vacuum_settings_str,
  56. rel.reloptions AS reloptions, tst.reloptions AS toast_reloptions, rel.reloftype,
  57. CASE WHEN typ.typname IS NOT NULL THEN (select quote_ident(nspname) FROM pg_namespace WHERE oid = 2200::oid )||'.'||quote_ident(typ.typname) ELSE typ.typname END AS typname,
  58. typ.typrelid AS typoid,
  59. (CASE WHEN rel.reltoastrelid = 0 THEN false ELSE true END) AS hastoasttable,
  60. -- Added for pgAdmin4
  61. (array_to_string(rel.reloptions, ',') like '%autovacuum%') AS autovacuum_custom,
  62. (CASE WHEN array_length(tst.reloptions, 1) > 0 AND rel.reltoastrelid != 0 THEN true ELSE false END) AS toast_autovacuum,
  63.  
  64. (SELECT array_agg(provider || '=' || label) FROM pg_seclabels sl1 WHERE sl1.objoid=rel.oid AND sl1.objsubid=0) AS seclabels,
  65. (CASE WHEN rel.oid <= 13407::oid THEN true ElSE false END) AS is_sys_table
  66. -- Added for partition table
  67. , (CASE WHEN rel.relkind = 'p' THEN pg_get_partkeydef(16474::oid) ELSE '' END) AS partition_scheme FROM pg_class rel
  68. LEFT OUTER JOIN pg_tablespace spc on spc.oid=rel.reltablespace
  69. LEFT OUTER JOIN pg_description des ON (des.objoid=rel.oid AND des.objsubid=0 AND des.classoid='pg_class'::regclass)
  70. LEFT OUTER JOIN pg_constraint con ON con.conrelid=rel.oid AND con.contype='p'
  71. LEFT OUTER JOIN pg_class tst ON tst.oid = rel.reltoastrelid
  72. LEFT JOIN pg_type typ ON rel.reloftype=typ.oid
  73. WHERE rel.relkind IN ('r','s','t','p') AND rel.relnamespace = 2200::oid
  74. AND NOT rel.relispartition
  75. AND rel.oid = 16474::oid ORDER BY rel.relname;
Add Comment
Please, Sign In to add comment