49.15. pg_database

В каталоге pg_database хранится информация о доступных базах данных. Базы данных создаются командой CREATE DATABASE. Подробнее о предназначении некоторых свойств баз можно узнать в Главе 21.

В отличие от большинства системных каталогов, pg_database разделяется всеми базами данных кластера: есть только один экземпляр pg_database в кластере, а не отдельные в каждой базе данных.

Таблица 49-15. Столбцы pg_database

ИмяТипСсылкиОписание
oid oid  Идентификатор строки (скрытый атрибут; должен выбираться явно)
datname name  Имя базы данных
datdba oid pg_authid.oid Владелец базы данных, обычно пользователь, создавший её
кодировка int4  Кодировка символов для этой базы данных (pg_encoding_to_char() может преобразовать этот номер в имя кодировки)
datcollate name  LC_COLLATE для этой базы данных
datctype name  LC_CTYPE для этой базы данных
datistemplate bool  Если true, базу данных сможет клонировать любой пользователь с правами CREATEDB; в противном случае, клонировать эту базу смогут только суперпользователи и её владелец.
datallowconn bool  Если false, никто не сможет подключаться к этой базе данных. Это позволяет защитить базу данных template0 от модификаций.
datconnlimit int4  Задаёт максимально допустимое число одновременных подключений к этой базе данных. С -1 ограничения нет.
datlastsysoid oid  Последний системный OID в базе данных; в частности, полезен для pg_dump
datfrozenxid xid  Все идентификаторы транзакций, предшествующие данному, в этой базе данных заменены постоянным ("замороженным") идентификатором транзакции. Это нужно для определения, когда требуется очищать базу данных для предотвращения зацикливания идентификаторов или для сокращения объёма pg_clog. Это значение вычисляется как минимум значений pg_class.relfrozenxid для всех таблиц.
datminmxid xid  Идентификаторы мультитранзакций, предшествующие данному, в этой базе данных заменены другим идентификатором транзакции. Это нужно для определения, когда требуется очищать базу данных для предотвращения зацикливания идентификаторов мультитранзакций или для сокращения объёма pg_multixact. Это значение вычисляется как минимум значений pg_class.relminmxid для всех таблиц.
dattablespace oid pg_tablespace.oid Табличное пространство по умолчанию для данной базы данных. Если таблица базы находится в этом пространстве, для неё значение pg_class.reltablespace будет нулевым; в частности, в нём окажутся все частные системные каталоги этой базы.
datacl aclitem[]  Права доступа; за подробностями обратитесь к описанию GRANT и REVOKE