50.36. pg_pltemplate

目录pg_pltemplate存储了过程语言的"模板"信息。一个语言的模板允许我们在一个特定数据库中以一个简单的CREATE LANGUAGE命令创建语言,而不需要指定实现细节。

和大部分系统目录不同,pg_pltemplate是在集簇的所有数据库之间共享的:在一个集簇中只有一份pg_pltemplate拷贝,而不是每个数据库一份。这使得在每个需要的数据库中都可以访问该信息。

表 50-36. pg_pltemplate的列

名称类型描述
tmplnamename该模板适用的语言名字
tmpltrustedboolean如果语言被认为是可信的则为真
tmpldbacreateboolean如果语言可以被一个数据库拥有者创建则为真
tmplhandlertext调用处理函数的名字
tmplinlinetext匿名阻塞处理函数的名字,如果没有则为空
tmplvalidatortext验证函数的名字,如果没有则为空
tmpllibrarytext实现语言的共享库的路径
tmplaclaclitem[]模板的访问权限(并未真正使用)

目前任何命令都不能操纵过程语言模板。要改变内建信息,超级用户必须使用普通的INSERTDELETEUPDATE命令修改该表。

注意: PostgreSQL的某个未来版本的发布中,pg_pltemplate很有可能会被移除,而这些关于过程语言的知识可能会保持在它们相应的扩展安装脚本中。