Le catalogue pg_largeobject contient les données qui décrivent les « objets volumineux » ( large objects ). Un objet volumineux est identifié par un OID qui lui est affecté lors de sa création. Chaque objet volumineux 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).
Tableau 43.21. Colonnes de pg_largeobject
Nom | Type | Description |
---|---|---|
loid | oid | Identifiant de l'objet volumineux qui contient la page |
pageno | int4 | Numéro de la page au sein de l'objet volumineux, en partant de 0 |
data | bytea | Données effectivement stockées dans l'objet volumineux. Il ne fait jamais plus de LOBLKSIZE mais peut faire moins. |
Chaque ligne de pg_largeobject contient les données d'une page de l'objet volumineux, 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 si elles ne sont pas la dernière de l'objet. Les parties manquantes sont considérées comme des suites de zéro.