50.15. pg_database
The catalogpg_database stores information about the available databases. Databases are created with theCREATE DATABASE command. ConsultChapter 21 for details about the meaning of some of the parameters.
Unlike most system catalogs,pg_database is shared across all databases of a cluster: there is only one copy ofpg_database per cluster, not one per database.
Table 50.15. pg_database Columns
| Name | Type | References | Description |
|---|---|---|---|
oid | oid | Row identifier (hidden attribute; must be explicitly selected) | |
datname | name | Database name | |
datdba | oid | | Owner of the database, usually the user who created it |
encoding | int4 | Character encoding for this database (pg_encoding_to_char() can translate this number to the encoding name) | |
datcollate | name | LC_COLLATE for this database | |
datctype | name | LC_CTYPE for this database | |
datistemplate | bool | If true, then this database can be cloned by any user withCREATEDB privileges; if false, then only superusers or the owner of the database can clone it. | |
datallowconn | bool | If false then no one can connect to this database. This is used to protect thetemplate0 database from being altered. | |
datconnlimit | int4 | Sets maximum number of concurrent connections that can be made to this database. -1 means no limit, -2 indicates the database is invalid. | |
datlastsysoid | oid | Last system OID in the database; useful particularly topg_dump | |
datfrozenxid | xid | All transaction IDs before this one have been replaced with a permanent (“frozen”) transaction ID in this database. This is used to track whether the database needs to be vacuumed in order to prevent transaction ID wraparound or to allowpg_xact to be shrunk. It is the minimum of the per-tablepg_class.relfrozenxid values. | |
datminmxid | xid | All multixact IDs before this one have been replaced with a transaction ID in this database. This is used to track whether the database needs to be vacuumed in order to prevent multixact ID wraparound or to allowpg_multixact to be shrunk. It is the minimum of the per-tablepg_class.relminmxid values. | |
dattablespace | oid | | The default tablespace for the database. Within this database, all tables for whichpg_class.reltablespace is zero will be stored in this tablespace; in particular, all the non-shared system catalogs will be there. |
datacl | aclitem[] | Access privileges; seeGRANT andREVOKE for details |