返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

38.7. 模块和 unknown 的命令

发布于 2019-09-30 03:09:33 字数 746 浏览 992 评论 0 收藏 0

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 必需可以为所有人读取,但是把它做成只有数据库管理员可写并拥有是明智的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文