45.31. pg_pltemplate

pg_pltemplate为过程语言存储"模板"信息。 一个语言的模板允许该语言可以在某个数据库里使用 简单的CREATE LANGUAGE命令创建,而不需要指定实现细节。

和许多系统表不一样,pg_pltemplate 是在集群里的所有数据库之间共享的: 每个集群只有一个pg_pltemplate的副本,而不是每个数据库一个。 这样就允许这些信息在需要时每个数据库都可以访问。

Table 45-31. pg_pltemplate Columns

名称类型描述
tmplnamename这个模板所应用的语言名
tmpltrustedboolean如果认为是可信的语言,则为真
tmpldbacreatebooleanTrue if language may be created by a database owner如果语言可能由一个数据库所有者创建,则为真
tmplhandlertext调用处理器函数名
tmplinlinetext匿名块处理函数名,如果没有,则null
tmplvalidatortext校验函数名,如果没有则为null
tmpllibrarytext实现语言的共享库的路径
tmplaclaclitem[]模板的访问权限(还未使用)

目前还没有任何命令可以用于操作过程语言模板;要修改内置的信息, 超级用户必须使用普通的INSERTDELETEUPDATE命令修改该表。 将来版本的PostgreSQL有可能提供一些命令来修改这些内容,以便更清晰些。

在实现的时候,tmplacl字段将提供对模板自身的访问控制(也就是使用它创建 一个语言的权限),而不是对那些从模板创建的语言的访问控制。