29.4. Fonctions du côté serveur
Ce sont des fonctions côté serveur appelables à partir de SQL
et correspondant à chaque fonction côté client décrite
ci-dessus ; en fait, pour leur grande part, les fonctions
côté client sont simplement des interfaces vers les fonctions
équivalentes côté serveur. Celles qui sont réellement utiles à
appeler via des commandes SQL sont lo_creat, lo_create,
lo_unlink, lo_import et lo_export. Voici des exemples de leur
utilisation :
CREATE TABLE image (
nom text,
donnees oid
);
SELECT lo_creat(-1); -- renvoie l'OID du nouvel objet large
SELECT lo_create(43213); -- tente de créer l'objet large d'OID 43213
SELECT lo_unlink(173454); -- supprime l'objet large d'OID 173454
INSERT INTO image (nom, donnees)
VALUES ('superbe image', lo_import('/etc/motd'));
SELECT lo_export(image.donnees, '/tmp/motd') FROM image
WHERE nom = 'superbe image';
Les fonctions lo_import et lo_export côté serveur se comportent
considérablement différemment de leurs analogues côté client.
Ces deux fonctions lisent et écrivent des fichiers dans le
système de fichiers du serveur en utilisant les droits du
propriétaire du serveur de base de données. Du coup, leur
utilisation est restreinte aux superutilisateurs. Au contraire
des fonctions côté serveur, les fonctions d'import et d'export
côté client lisent et écrivent des fichiers dans le système de
fichiers du client en utilisant les droits du programme client.
Les fonctions côté client peuvent être utilisées par tout
utilisateur PostgreSQL™.