The pg_database catalog stores information
   about the available databases.  Databases are created with the
   CREATE DATABASE command.  Consult the
   Administrator's Guide 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 3-12. pg_database Columns
| Name | Type | References | Description | 
|---|
| datname | name |  | Database name | 
| datdba | int4 | pg_shadow.usesysid | Owner of the database, usually the user who created it | 
| encoding | int4 |  | Character/multibyte encoding for this database | 
| datistemplate | bool |  | If true then this database can be used in the
       "TEMPLATE" clause of CREATE
       DATABASE to create a new database as a clone of
       this one. | 
| datallowconn | bool |  | If false then no one can connect to this database.  This is
       used to protect the template0 database from being altered. | 
| datlastsysoid | oid |  | Last system OID in the database; useful
       particularly to pg_dump | 
| datvacuumxid | xid |  | All tuples inserted or deleted by transaction IDs before this one
       have been marked as known committed or known aborted in this database.
       This is used to determine when commit-log space can be recycled. | 
| datfrozenxid | xid |  | All tuples inserted by transaction IDs before this one have been
       relabeled with a permanent ("frozen") transaction ID in this
       database.  This is useful to check whether a database must be vacuumed
       soon to avoid transaction ID wraparound problems. | 
| datpath | text |  | If the database is stored at an alternative location then this
       records the location.  It's either an environment variable name
       or an absolute path, depending how it was entered. | 
| datconfig | text[] |  | Session defaults for run-time configuration variables | 
| datacl | aclitem[] |  | Access permissions |