LOAD

Nom

LOAD — charge dynamiquement un fichier objet.
LOAD 'filename'
  

Entrées

filename

fichier objet a charger dynamiquement.

Sorties

LOAD

message retourné si succés

ERROR: LOAD: could not open file 'filename'

si le fichier spécifié n'est pas trouvé. Le fichier doit être visible par le serveur Postgres, avec le nom de chemin complet spécifié, pour éviter ce message.

Description

Charge un fichier objet (ou ".o") dans l'espace d'adressage du serveur Postgres. Une fois que le fichier est chargé, toutes les fonctions de ce fichier peuvent être accédées. Cette fonction est utilisée dans le support des types utilisateur et des fonctions.

Si un fichier n'est pas chargé en utilisant LOAD, le fichier sera chargé automatiquement la première fois que la fonction est appelée par Postgres. LOAD peut aussi être utilisé pour recharger un fichier objet si il a été édité et recompilé. Seuls les fichiers objet créés depuis le langage C sont supportés pour l'instant.

Notes

Les fonctions dans les fichiers objet chargés ne seraient pas des appels fonctions dans d'autre fichiers objet chargés par la commande LOAD Par exemple toutes les fonctions dans un fichier A en appelleraient d'autres, fonctions standard ou bibliothèques mathématiques, ou dans Postgres lui-même. Elles n'appelleraient pas des fonction définies dans un fichier chargé B différent. Parce que si B est rechargé, le Postgres loader n'est pas capable de relocaliser les appels depuis les fonctions dans A dans l'espace des nouvelles adresses de B. Si B n'est pas rechargé, cependant, ce pourrait être un problème.

Les fichiers objets doivent être compilés pour contenir du code en position indépendante. Par exemple, sur les stations DEC vous devez utiliser /bin/cc avec l'option -G 0 quand le fichier objet compiling est chargé.

Notez que si vous portez Postgres vers une nouvelles plateforme, LOAD devra travailler afin de supporter les ADT.

Utilisation

Charge le fichier /usr/postgres/demo/circle.o:
LOAD '/usr/postgres/demo/circle.o'
   

Compatibilité

SQL92

Il n'existe pas de commande LOAD en SQL92.