30.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™.