PostgreSQL 8.2.3 中文文档
后退快退章38. PL/Tcl - Tcl 过程语言快进前进

38.7. 模块和 unknown 的命令

PL/Tcl 使用时支持自动加载 Tcl 代码。它识别一个特殊的 pltcl_modules 表,该表被认为包含 Tcl 代码的模块。如果存在这个表,则在创建完解释器后马上从该表中抓取 unknown 模块并加载到 Tcl 解释器中。

因为 unknown 模块实际上可以包含任何你需要的初始化脚本,它通常是定义为一个 Tcl unknown 过程,在 Tcl 不能识别一个调用的过程名的时候就调用它。PL/Tcl这个过程的标准版本试图在 pltcl_modules 里找到一个定义所需要过程的模块。如果找到一个,那么把它加载入解释器,然后允许继续按照原来的过程调用处理。另外还定义了一个 pltcl_modfuncs 表,它提供了哪个函数由哪个模块定义的索引,因此查找过程相当快。

PostgreSQL 包括维护这些表的支持脚本:pltcl_loadmod, pltcl_listmod, pltcl_delmod 以及标准 share/unknown.pltclunknown 模块的源代码。这个模块必须一开始就加载入每个数据库才能支持自动加载机制。

pltcl_modulespltcl_modfuncs 必需可以为所有人读取,但是把它做成只有数据库管理员可写并拥有是明智的。


后退首页前进
PL/Tcl 里的触发器过程上一级Tcl 过程名字