38.7. Les modules et la commande unknown
PL/Tcl dispose du support de chargement automatique de code Tcl
lorsqu'il est utilisé. Il reconnaît une table spéciale, pltcl_modules, qui est présumée contenir les modules
de code Tcl. Si cette table existe, le module unknown est récupéré de la table et chargé
immédiatement dans l'interpréteur Tcl après création de
l'interpréteur.
Alors que le module unknown pourrait
réellement contenir tout script d'initialisation dont vous avez
besoin, il définit normalement une procédure Tcl unknown qui est appelée lorsque Tcl ne reconnaît pas
le nom de la procédure appelée. La version standard de PL/Tcl essaie de trouver un module dans
pltcl_modules qui définira la procédure
requis. Si une procédure est trouvée, elle est chargée dans
l'interpréteur, puis l'exécution est permise avec l'appel original de
la procédure. Une deuxième table pltcl_modfuncs fournit un index des fonctions et des
modules qui les définissent, de façon à ce que la recherche soit
rapide.
La distribution PostgreSQL™
inclut les scripts de support pour maintenir ces tables :
pltcl_loadmod
,
pltcl_listmod
,
pltcl_delmod
ainsi que
le source pour le module standard unknown
dans share/unknown.pltcl. Ce module doit
être chargeable dans chaque base de données initialement pour
supporter le mécanisme de chargement automatique.
Les tables pltcl_modules et pltcl_modfuncs doivent être lisibles par tous mais il
est conseillé de les laisser modifiables uniquement par le
propriétaire, administrateur de la base de données.