PostgreSQL

PostgreSQL システムカタログ

システムカタログとは

システムカタログとはPostgreSQLの内部情報を管理するための特殊なテーブルやVIEWの事です。各種システム設定、各種メタ情報などが保持されているようです。具体的な名前は何れもpg_から始まる名前でpg_catalogスキーマに作成されています。つまりはデータベース毎に保持しています。(同一クラスター内に複数データベースが存在する場合それぞれのデータベースで保持しています)

pg_catalogスキーマは特別で、サーチパスへの指定がなくても検索パスに含まれます。そのためスキーマ修飾不要で利用する事ができます。

pg_catalogと同じようなテーブルやビューを保持しているinformation_schemaスキーマが存在しますがこちらはANSI SQL標準に準拠したメタデータテーブルやビューの集合です。異なるデータベースとの互換性を保つ意味もあるようです。

システムカタログが確認できるSQL
select table_catalog,table_schema,table_name,table_type
from information_schema.tables t
where t.table_schema ='pg_catalog'
;
実行例
myposdb=# select table_catalog,table_schema,table_name,table_type
myposdb-# from information_schema.tables t
myposdb-# where t.table_schema ='pg_catalog'
myposdb-# order by 3
myposdb-# ;
 table_catalog | table_schema |           table_name            | table_type
---------------+--------------+---------------------------------+------------
 myposdb       | pg_catalog   | pg_aggregate                    | BASE TABLE
 myposdb       | pg_catalog   | pg_am                           | BASE TABLE
 myposdb       | pg_catalog   | pg_amop                         | BASE TABLE
 myposdb       | pg_catalog   | pg_amproc                       | BASE TABLE
 myposdb       | pg_catalog   | pg_attrdef                      | BASE TABLE
 myposdb       | pg_catalog   | pg_attribute                    | BASE TABLE
 myposdb       | pg_catalog   | pg_auth_members                 | BASE TABLE
 myposdb       | pg_catalog   | pg_authid                       | BASE TABLE
 myposdb       | pg_catalog   | pg_available_extension_versions | VIEW
 myposdb       | pg_catalog   | pg_available_extensions         | VIEW
 myposdb       | pg_catalog   | pg_cast                         | BASE TABLE
 myposdb       | pg_catalog   | pg_class                        | BASE TABLE
 myposdb       | pg_catalog   | pg_collation                    | BASE TABLE
 myposdb       | pg_catalog   | pg_config                       | VIEW
 myposdb       | pg_catalog   | pg_constraint                   | BASE TABLE
 myposdb       | pg_catalog   | pg_conversion                   | BASE TABLE
 myposdb       | pg_catalog   | pg_cursors                      | VIEW
 myposdb       | pg_catalog   | pg_database                     | BASE TABLE
 myposdb       | pg_catalog   | pg_db_role_setting              | BASE TABLE
 myposdb       | pg_catalog   | pg_default_acl                  | BASE TABLE
 myposdb       | pg_catalog   | pg_depend                       | BASE TABLE
 myposdb       | pg_catalog   | pg_description                  | BASE TABLE
 myposdb       | pg_catalog   | pg_enum                         | BASE TABLE
 myposdb       | pg_catalog   | pg_event_trigger                | BASE TABLE
 myposdb       | pg_catalog   | pg_extension                    | BASE TABLE
 myposdb       | pg_catalog   | pg_file_settings                | VIEW
 myposdb       | pg_catalog   | pg_foreign_data_wrapper         | BASE TABLE
 myposdb       | pg_catalog   | pg_foreign_server               | BASE TABLE
-- More  --
スポンサーリンク
タイトルとURLをコピーしました