Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

テーブルがUNLOGGEDで作られたものか調べたい - 2016年夏

More than 3 years have passed since last update.

今から4年前に、(UNLOGGED TABLEがサポートされた後だろうか)こんな記事をはてなblogに書いたことがある。
テーブルがUNLOGGEDで作られたものか調べたい

で、そんな記事を書いたことをすっかり忘れていたんだけど、今日、久々にNoboru Saitoさんから『「てゆーか、次のバージョンでPersistent情報を"\d+"とかで表示してくれると嬉しいかも・・・」 状況変わってないですよねー?』
という質問を受けて、改めてPostgreSQL 9.6beta版で調べてみた。

結論から言えば、全然状況は変わってないようです。

test=# \d+
                     List of relations
 Schema |  Name  | Type  | Owner |    Size    | Description 
--------+--------+-------+-------+------------+-------------
 public | test   | table | nuko  | 8192 bytes | 
 public | test_u | table | nuko  | 16 kB      | 
(2 rows)

やっぱり、UNLOGGED TABLEかどうかの情報は出力してくれない。
結局、以前と同じようなVIEWを作るしかないのか。

test=# CREATE VIEW tablelsit_with_persistent AS (SELECT n.nspname as "Schema",
          c.relname as "Name",
          CASE c.relkind 
            WHEN 'r' THEN 'table' 
            WHEN 'v' THEN 'view' 
            WHEN 'i' THEN 'index' 
            WHEN 'S' THEN 'sequence' 
            WHEN 's' THEN 'special' 
            WHEN 'f' THEN 'foreign table' END as "Type",
          pg_catalog.pg_get_userbyid(c.relowner) as "Owner",
          c.relpersistence as "Persistent"
        FROM pg_catalog.pg_class c
             LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
        WHERE c.relkind IN ('r','v','S','f','')
              AND n.nspname <> 'pg_catalog'
              AND n.nspname <> 'information_schema'
              AND n.nspname !~ '^pg_toast'
          AND pg_catalog.pg_table_is_visible(c.oid)
        ORDER BY 1,2);
CREATE VIEW
test=#

で、このVIEWを検索するしかないっぽい。(´・ω・`)

test=# SELECT * FROM tablelsit_with_persistent ;
 Schema |           Name            | Type  | Owner | Persistent 
--------+---------------------------+-------+-------+------------
 public | tablelsit_with_persistent | view  | nuko  | p
 public | test                      | table | nuko  | p
 public | test_u                    | table | nuko  | u
(3 rows)

次バージョンでPersistentを表示するようなパッチの提案をする手もあるかな・・・でも、UNLOGGED使っているユーザってそんなにいないのかな。

nuko_yokohama
ぬこ@横浜です/ にゃーん / 趣味でポスグレをやってる者だ/ 名もなく 貧しく 太ましく
https://supleks.jp/u/8999.html
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away