暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【翻译PG】43.1. 概述

seagull 2024-12-12
50

43.1. 概述

PL/Tcl 提供了大部分函数编写者在 C 语言中能够获得的能力,虽然有一些限制,但是却额外提供了 Tcl 中强大的字符串处理库。

一种强制性的限制是所有被执行的东西都处于 Tcl 解释器的安全上下文中。除了安全 Tcl 的有限的命令集合之外,只有几个通过 SPI 访问数据库的命令以及通过elog()产生消息的命令。PL/Tcl 没有提供访问数据库服务器内部或者在服务器进程权限之下得到 OS-级访问的方法,而 C 函数是可以那样做的。因此,非特权数据库用户可以使用这种语言,它不会给予他们无限制的权利。

其他值得注意的实现限制是 Tcl 函数不能被用来创建新数据类型的输入/输出函数。

有时候我们想要编写不受安全 Tcl 限制的 Tcl 函数。例如,我们可能想要一个能发送电子邮件的 Tcl 函数。要处理这些情况,可以使用一种的变体,它被称为PL/TclU(用于非可信 Tcl)。它其实是完全相同的一种语言,不过它使用了一个完整的 Tcl 解释器。,它必须被安装为一种非可信的过程语言,这样只有数据库超级用户可以用它来创建函数。函数的编写者必须注意该函数不能被用来做其设计目的之外的事情,因为该函数能做一个作为数据库管理员登录的用户可以做的任何事情。

如果在安装过程的配置步骤中指定了 Tcl 支持,以及调用处理器的共享对象代码会被自动编译并且被安装在的库目录中。要在一个特定数据库中安装或者,请使用CREATE EXTENSION命令,例如CREATE EXTENSION pltcl或者CREATE EXTENSION pltclu


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论