42.26. pg_pltemplate

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

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

Table 42-26. pg_pltemplate 字段

名字类型引用描述
tmplnamename 这个模板所服务的语言的名字
tmpltrustedboolean 如果语言被人为是可信的,则为真
tmplhandlertext 调用句柄函数的名字
tmplvalidatortext 校验函数的名字,如果没有则为 NULL
tmpllibrarytext 实现语言的共享库的路径
tmplaclaclitem[] 模板的访问权限(未用)

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

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