↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / System Catalogs

pg_database

The catalog pg_database stores information about the available databases. Databases are created with the CREATE DATABASE command. Consult Chapter 22 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.

English manual coverage begins with PostgreSQL 7.4. Source history and runtime observations have their own recorded version boundaries.

Reading PG 18·Select a recorded version

kind
catalog
lang
en
measured attributes
true
metadata release
18.6
runtime columns
oid, datname, datdba, encoding, datlocprovider, datistemplate, datallowconn, dathasloginevt, datconnlimit, datfrozenxid, datminmxid, dattablespace, datcollate, datctype, datlocale, daticurules, datcollversion, datacl
runtime verified
false
source
english-manual

Definition PG 18

The catalog pg_database stores information about the available databases. Databases are created with the CREATE DATABASE command. Consult Chapter 22 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.

Catalog columns

ColumnTypeNullabilityDescription
oidoidNot nullRow identifier
datnamenameNot nullDatabase name
datdbaoidNot nullOwner of the database, usually the user who created it
encodingint4Not nullCharacter encoding for this database (pg_encoding_to_char() can translate this number to the encoding name)
datlocprovidercharNot nullLocale provider for this database: b = builtin, c = libc, i = icu
datistemplateboolNot nullIf 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.
datallowconnboolNot nullIf false then no one can connect to this database. This is used to protect the template0 database from being altered.
dathasloginevtboolNot nullIndicates that there are login event triggers defined for this database. This flag is used to avoid extra lookups on the pg_event_trigger table during each backend startup. This flag is used internally by PostgreSQL and should not be manually altered or read for monitoring purposes.
datconnlimitint4Not nullSets maximum number of concurrent connections that can be made to this database. -1 means no limit, -2 indicates the database is invalid.
datfrozenxidxidNot nullAll 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.
datminmxidxidNot nullAll 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.
dattablespaceoidNot nullThe 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.
datcollatetextNot nullLC_COLLATE for this database
datctypetextNot nullLC_CTYPE for this database
datlocaletextNullableCollation provider locale name for this database. If the provider is libc, datlocale is NULL; datcollate and datctype are used instead.
daticurulestextNullableICU collation rules for this database
datcollversiontextNullableProvider-specific version of the collation. This is recorded when the database is created and then checked when it is used, to detect changes in the collation definition that could lead to data corruption.
dataclaclitem[]NullableAccess privileges; see Section 5.8 for details

Compare versions

Source references

Full definition and evidence JSON

Definition sources

center · PostgreSQL 18 · catalog-bilingual-repair:7241f24015c53415002c210f2e5c881061e75e09b7d72fc323da41aa393c6ed5

Text language: en · catalog-bilingual-repair:7241f24015c53415002c210f2e5c881061e75e09b7d72fc323da41aa393c6ed5