37.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.