PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.2 » Internes » Catalogues système » pg_database

51.15. pg_database #

Le catalogue pg_database stocke les informations concernant les bases de données disponibles. Celles-ci sont créées avec la commande CREATE DATABASE. Consulter le Chapitre 22 pour les détails sur la signification de certains paramètres.

Contrairement à la plupart des catalogues système, pg_database est partagé par toutes les bases de données d'un cluster : il n'y a qu'une seule copie de pg_database par cluster, pas une par base.

Tableau 51.15. Colonnes de pg_database

Type

Description

oid oid

Identifiant de ligne

datname name

Nom de la base de données

datdba oid (référence pg_authid.oid)

Propriétaire de la base, généralement l'utilisateur qui l'a créée

encoding int4

Encodage de la base de données (la fonction pg_encoding_to_char() peut convertir ce nombre en nom de l'encodage)

datlocprovider char

Fournisseur de la locale pour cette base de données : b= interne, c = libc, i = icu

datistemplate bool

Si vrai, alors cette base de données peut être clonée par tout utilisateur ayant l'attribut CREATEDB ; si faux, seuls les superutilisateurs et le propriétaire de la base de données peuvent la cloner.

datallowconn bool

Si ce champ est faux, alors personne ne peut se connecter à cette base de données. Ceci est utilisé pour interdire toute modification de la base template0.

dathasloginevt bool

Indique qu'il existe des triggers sur événement de connexion pour cette base de données. Ce drapeau est utilisé pour éviter des recherches supplémentaires sur la table pg_event_trigger à chaque lancement d'un processus serveur. Cette information est utilisée en interne par PostgreSQL et ne devrait pas être modifiée manuellement ou lu par la supervision.

datconnlimit int4

Nombre maximum de connexions concurrentes autorisées sur la base de données. -1 indique l'absence de limite.

datfrozenxid xid

Tous les ID de transaction avant celui-ci ont été remplacés par un ID de transaction permanent (« frozen »). Ceci est utilisé pour déterminer si la table doit être nettoyée (VACUUM) pour éviter un bouclage des ID de transaction (ID wraparound) ou pour compacter pg_xact. C'est la valeur minimale des valeurs par table de pg_class.relfrozenxid.

datminmxid xid

Tous les identifiants MultiXact avant celui-i ont été remplacés par un identifiant de transaction dans cette table. Ceci est utilisé pour tracer si la base de données a besoin d'être traitée par le VACUUM pour empêcher un bouclage des identifiants MultiXact ou pour permettre à pg_multixact d'être réduit. Il s'agit aussi de la valeur minimale des valeurs de pg_class.relminmxid pour chaque table.

dattablespace oid (référence pg_tablespace.oid)

Le tablespace par défaut de la base de données. Dans cette base de données, toutes les tables pour lesquelles pg_class.reltablespace vaut zéro sont stockées dans celui-ci ; en particulier, tous les catalogues système non partagés s'y trouvent.

datcollate text

LC_COLLATE pour cette base de données

datctype text

LC_CTYPE pour cette base de données

datlocale text

Nom de la locale du fournisseur de collation pour cette base de données. Si le fournisseur est libc, datlocale vaut NULL ; datcollate et datctype sont utilisés à la place.

daticurules text

Règles de collation ICU pour cette base de données

datcollversion text

Version spécifique du fournisseur pour cette collation. Cette information est enregistrée quand la base de données est créée et est vérifiée à chaque utilisation de la base pour détecter les changements de définition de la collation, qui pourraient amener à une corruption des données.

datacl aclitem[]

Droits d'accès ; voir Section 5.8 pour les détails.