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

51.30. pg_largeobject

Le catalogue pg_largeobject contient les données qui décrivent les « Large Objects » (large objects). Un Large Object est identifié par un OID qui lui est affecté lors de sa création. Chaque Large Object est coupé en segments ou « pages » suffisamment petits pour être facilement stockés dans des lignes de pg_largeobject. La taille de données par page est définie par LOBLKSIZE, qui vaut actuellement BLCKSZ/4, soit habituellement 2 ko).

Avant PostgreSQL 9.0, il n'existait pas de droits associés aux « Large Objects ». Du coup, pg_largeobject était lisible par tout le monde et pouvait être utilisé pour obtenir les OID (et le contenu) de tous les « Large Objects » du système. Ce n'est plus le cas ; utilisez pg_largeobject_metadata pour obtenir une liste des OID des « Large Objects ».

Tableau 51.30. Colonnes de pg_largeobject

Type

Description

loid oid (référence pg_largeobject_metadata.oid)

Identifiant du Large Object qui contient la page

pageno int4

Numéro de la page au sein du Large Object, en partant de 0

data bytea

Données effectivement stockées dans le Large Object. Il ne fait jamais plus de LOBLKSIZE mais peut faire moins.


Chaque ligne de pg_largeobject contient les données d'une page du Large Object, en commençant au décalage d'octet (pageno * LOBLKSIZE) dans l'objet. Ceci permet un stockage diffus : des pages peuvent manquer, d'autres faire moins de LOBLKSIZE octets même s'il ne s'agit pas de la dernière de l'objet. Les parties manquantes sont considérées comme des suites de zéro.