30. Objets larges

30.1. Introduction
30.2. Fonctionnalités d'implémentation
30.3. Interfaces client
30.4. Fonctions du côté serveur
30.5. Programme d'exemple

PostgreSQL™ a des fonctionnalités concernant les objets larges, fournissant un accès style flux aux données utilisateurs stockées dans une structure spéciale. L'accès en flux est utile pour travailler avec des valeurs de données trop larges pour être manipuler convenablement en entier.

Ce chapitre décrit l'implémentation, la programmation et les interfaces du langage de requêtes pour les données de type objet large dans PostgreSQL™. Nous utilisons la bibliothèque C libpq pour les exemples de ce chapitre mais la plupart des interfaces natives de programmation de PostgreSQL™ supportent des fonctionnalités équivalentes. D'autres interfaces pourraient utiliser l'interface des objets larges en interne pour fournir un support générique des valeurs larges. Ceci n'est pas décrit ici.

30.1. Introduction

Tous les objets larges sont placés dans une seule table système appelée pg_largeobject. PostgreSQL™ supporte aussi un système de stockage appelé « TOAST » qui stocke automatiquement les valeurs ne tenant pas sur une page de la base de données dans une aire de stockage secondaire par table. Ceci rend partiellement obsolète la fonctionnalité des objets larges. Un avantage restant des objets larges est qu'il autorise les valeurs de plus de 2 Go en taille alors que les champs TOAST peuvent être d'au plus 1 Go. De plus, les objets larges peuvent être modifiés au hasard en utilisant une API de lecture/écriture qui est plus efficace que la réalisation de telles opérations utilisant TOAST.