pg_catalog 테이블 보기 쿼리

카탈로그 테이블을 살펴보는 쿼리들

pgAdmin 같은 도구로 카탈로그를 테이블을 보면, 그 안에 담긴 내용 자체가 암호문과 같아서 결국 카탈로그 설명서를 같이 읽게 되는 경우가 아주 많습니다. 

그래서, 준비했습니다. 
이 축약된 정보나 숫자로 된 것들을 모두 관련 테이블 함께 살펴보는 쿼리를 하나 씩 틈 나는 대로 소개 하려고 합니다. 

순서는 먼저 만들어지는 순이며, 다음 테이블 이름의 가나다 순입니다. 
이 페이지에 모두 담을 예정이기 때문에, 이 페이지는 틈틈이 계속 고쳐 나갈 것입니다.
PostgreSQL 버전은 10버전을 기준으로 작성했습니다.

 
pg_cast

SELECT castsource::regtype AS "기존자료형", 
       casttarget::regtype AS "대상자료형", 
       castfunc::regproc AS "함수", 
       CASE 
         WHEN ca.castcontext = 'a' THEN '대입' 
         WHEN ca.castcontext = 'i' THEN '묵시' 
         ELSE '명시' 
       END        AS "사용상황", 
       CASE 
         WHEN ca.castmethod = 'i' THEN '입출력' 
         WHEN ca.castmethod = 'f' THEN '함수' 
         ELSE '그냥' 
       END        AS "종류" 
FROM   pg_cast ca
ORDER  BY 1 



pg_collation

SELECT collname                          AS "규칙이름", 
       
regnamespaceout(collnamespace)    AS "스키마", 
       pg_get_userbyid(collowner)        AS "소유주", 
       CASE 
         WHEN collprovider = 'd' THEN '기본' 
         WHEN collprovider = 'c' THEN 'libc' 
         ELSE 'icu' 
       END                               AS "제공자", 
       pg_encoding_to_char(collencoding) AS "인코딩", 
       collcollate                       AS lc_collate, 
       collctype                         AS lc_ctype, 
       collversion                       AS "버전" 
FROM   pg_collation 
ORDER  BY 1



pg_conversion

SELECT conname                             AS "변환규칙", 
       regnamespaceout(connamespace)       AS "스키마", 
       pg_get_userbyid(conowner)           AS "소유주", 
       
pg_encoding_to_char(conforencoding) AS "원래인코딩", 
       pg_encoding_to_char(contoencoding)  AS "대상인코딩", 
       conproc                             AS "함수", 
       condefault                          AS "기본값" 
FROM   pg_conversion 
ORDER  BY 1; 



pg_database

SELECT datname                       AS "이름", 
       pg_get_userbyid(datdba)       AS "소유주", 
       pg_encoding_to_char(encoding) AS "인코딩", 
       datcollate                    AS "lc_collate", 
       datctype                      AS "lc_ctype", 
       datistemplate                 AS "템플릿?", 
       datallowconn                  AS "접속허용?", 
       datconnlimit                  AS "접속제한수", 
       datlastsysoid                 AS "마지막OID", 
       
age(datfrozenxid)   AS "나이", 
       datminmxid, 
       t.spcname                     AS "테이블스페이스" 
FROM   pg_database 
       JOIN pg_tablespace t 
         ON pg_database.dattablespace = t.oid 
ORDER  BY 1



pg_db_role_setting


SELECT coalesce(b.datname, '-') AS 데이터베이스,
       setrole :: regrole       AS ,
       unnest(setconfig)        AS 
설정
FROM   pg_db_role_setting a
       left join pg_database b
              ON a.setdatabase = b.oid