41.19. pg_largeobject

Le catalogue pg_largeobject contient les données qui décrivent les << objets de grande taille >>. Un gros objet est identifié par un OID qui lui est affecté lors de sa création. Chaque objet de grande taille est coupé en segments ou << pages >> suffisamment petites pour être facilement stockées 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 41-19. Colonnes de pg_largeobject

NomTypeRéférencesDescription
loidoid Identifiant de l'objet de grande taille auquel appartient cette page.
pagenoint4 Numéro de cette page parmi son objet de grande taille, en partant de zéro.
databytea  Données effectivement stockées dans l'objet de grande taille. 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 de grande taille, en commençant à l'octet (pageno * LOBLKSIZE) de l'objet. Ceci permet un stockage économique : des pages peuvent manquer, et d'autres faire moins de LOBLKSIZE octets même si elles ne sont pas les dernières de leur objet. Les parties manquantes sont considérées comme des suites de zéro.