pg_database
pg_databaseカタログには使用可能なデータベースの情報が格納されます。
データベースはCREATE DATABASEコマンドで作成されます。
いくつかのパラメータの詳細については第22章を参照してください。
  
ほとんどのシステムカタログとは異なり、pg_databaseはクラスタにおける全てのデータベースにわたって共有されます。
データベース毎に1つではなく、クラスタ毎にたった1つだけpg_databaseのコピーが存在します。
  
表52.15 pg_databaseの列
| 名前 | 型 | 参照先 | 説明 | 
|---|---|---|---|
| oid | oid | 行識別子(隠し属性です。明示的に選択しなければなりません) | |
| datname | name | データベース名 | |
| datdba | oid |  | データベースの所有者。通常はそのデータベースの作成者 | 
| encoding | int4 | このデータベースの文字エンコード方式。
( pg_encoding_to_char()で、この番号からエンコード方式名称に変換できます。) | |
| datcollate | name | このデータベースのLC_COLLATE | |
| datctype | name | このデータベースのLC_CTYPE | |
| datistemplate | bool | trueの場合、このデータベースはどのユーザでも CREATEDBを使って複製することができます。
falseの場合、スーパーユーザまたはデータベースの所有者だけが複製することができます。 | |
| datallowconn | bool | 偽の時はこのデータベースには誰も接続できません。
これは template0データベースが変更されることを防ぐために使用されます。 | |
| datconnlimit | int4 | このデータベースに対する同時のコネクションの最大数を設定します。 -1は無制限を意味します。 | |
| datlastsysoid | oid | データベース最終のシステムOID。 pg_dumpでは特に有用です。 | |
| datfrozenxid | xid | このデータベースの中で、この値よりも前のトランザクションIDは、永続的な(「凍結された」)トランザクションIDを持つように変更されています。
これは、このデータベースに対して、トランザクションID周回を防ぎ、かつ、 pg_xactを縮小させることを目的としたバキュームを行うかどうかを追跡するために使用されます。
これはテーブル毎のpg_class.relfrozenxid値の最小値になります。 | |
| datminmxid | xid | このデータベース内のトランザクションIDで置換される前のすべてのマルチトランザクションID。
これは、トランザクションIDの周回問題を防ぐ、または pg_multixactを縮小させるためにデータベースをバキュームする必要があるかどうかを追跡するために使用されます。
これはテーブル毎のpg_class.relminmxidの最小値です。 | |
| dattablespace | oid |  | データベース用のデフォルトテーブル空間。
このデータベース内で pg_class.reltablespaceがゼロであるすべてのテーブルは、このテーブル空間に格納されます。
特に、共有されていないすべてのシステムカタログはこのテーブル空間にあります。 | 
| datacl | aclitem[] | アクセス権限。 GRANTとREVOKEを参照してください。 |