51.15. pg_database #

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

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

Таблица 51.15. Столбцы pg_database

Тип столбца

Описание

oid oid

Идентификатор строки

datname name

Имя базы данных

datdba oid (ссылается на pg_authid.oid)

Владелец базы данных, обычно пользователь, создавший её

encoding int4

Кодировка символов для этой базы данных (pg_encoding_to_char() может преобразовать этот номер в имя кодировки)

datlocprovider char

Провайдер локали для этой базы данных: b = builtin, c = libc, i = icu

datistemplate bool

Если true, базу данных сможет клонировать любой пользователь с правами CREATEDB; в противном случае клонировать эту базу смогут только суперпользователи и её владелец.

datallowconn bool

Если false, никто не сможет подключаться к этой базе данных. Это позволяет защитить базу данных template0 от модификаций.

dathasloginevt bool

Указывает, что для этой базы данных заданы событийные триггеры входа в систему. Этот флаг используется, чтобы избежать дополнительных операций поиска в таблице pg_event_trigger при запуске каждого обслуживающего процесса. Этот флаг используется внутри Postgres Pro и не должен изменяться вручную или считываться в целях мониторинга.

datconnlimit int4

Задаёт максимально допустимое число одновременных подключений к этой базе данных. С -1 ограничения нет, с -2 к базе данных нельзя подключаться.

datfrozenxid xid

Все идентификаторы транзакций, предшествующие данному, в этой базе данных заменены постоянным («замороженным») идентификатором транзакции. Это нужно для определения, когда требуется очищать базу данных для предотвращения зацикливания идентификаторов или для сокращения объёма pg_xact. Это значение вычисляется как минимум значений pg_class.relfrozenxid для всех таблиц.

datminmxid xid

Идентификаторы мультитранзакций, предшествующие данному, в этой базе данных заменены другим идентификатором транзакции. Это нужно для определения, когда требуется очищать базу данных для предотвращения зацикливания идентификаторов мультитранзакций или для сокращения объёма pg_multixact. Это значение вычисляется как минимум значений pg_class.relminmxid для всех таблиц.

dattablespace oid (ссылается на pg_tablespace.oid)

Табличное пространство по умолчанию для данной базы данных. Если таблица базы находится в этом пространстве, для неё значение pg_class.reltablespace будет нулевым; в частности, в нём окажутся все частные системные каталоги этой базы.

datcollate text

LC_COLLATE для этой базы данных

datctype text

LC_CTYPE для этой базы данных

datlocale text

Имя локали провайдера правил сортировки для этой базы данных. Если провайдер — libc, datlocale имеет значение NULL и вместо него используются datcollate и datctype.

daticurules text

Правила сортировки ICU для этой базы данных

datcollversion text

Определяемая провайдером версия правила сортировки. Она записывается при создании базы данных и проверяется при использовании для обнаружения изменений в его определении, чреватых повреждением данных.

datacl aclitem[]

Права доступа; за подробностями обратитесь к Разделу 5.8.