52.15. pg_database

52.15. `pg_database`
Prev | Up | Chapter 52. System Catalogs | Home | Next

## 52.15. `pg_database`

The catalog `pg_database` stores information about the available databases. Databases are created with the `CREATE DATABASE` command. Consult Chapter 23 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 of `pg_database` per cluster, not one per database.

Table 52.15. `pg_database` Columns

Column Type Description
`oid` `oid` Row identifier
`datname` `name` Database name
`datdba` `oid` (references `pg_authid`.`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 with `CREATEDB` 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 the `template0` 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 to pg_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 allow `pg_xact` to be shrunk. It is the minimum of the per-table `pg_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 allow `pg_multixact` to be shrunk. It is the minimum of the per-table `pg_class`.`relminmxid` values.
`dattablespace` `oid` (references `pg_tablespace`.`oid`) The default tablespace for the database. Within this database, all tables for which `pg_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; see Section 5.7 for details

Prev | Up | Next
52.14. `pg_conversion` | Home | 52.16. `pg_db_role_setting`