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 |
---|
Identifiant du Large Object qui contient la page |
Numéro de la page au sein du Large Object, en partant de 0 |
Données effectivement stockées dans le Large Object. Il ne fait
jamais plus de |
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.