©
This document uses PHP Chinese website manual Release
pg_pltemplate为过程语言存储"模板"信息。 一个语言的模板允许该语言可以在某个数据库里使用 简单的CREATE LANGUAGE命令创建,而不需要指定实现细节。
和许多系统表不一样,pg_pltemplate 是在集群里的所有数据库之间共享的: 每个集群只有一个pg_pltemplate的副本,而不是每个数据库一个。 这样就允许这些信息在需要时每个数据库都可以访问。
Table 45-31. pg_pltemplate Columns
名称 | 类型 | 描述 |
---|---|---|
tmplname | name | 这个模板所应用的语言名 |
tmpltrusted | boolean | 如果认为是可信的语言,则为真 |
tmpldbacreate | boolean | True if language may be created by a database owner如果语言可能由一个数据库所有者创建,则为真 |
tmplhandler | text | 调用处理器函数名 |
tmplinline | text | 匿名块处理函数名,如果没有,则null |
tmplvalidator | text | 校验函数名,如果没有则为null |
tmpllibrary | text | 实现语言的共享库的路径 |
tmplacl | aclitem[] | 模板的访问权限(还未使用) |
目前还没有任何命令可以用于操作过程语言模板;要修改内置的信息, 超级用户必须使用普通的INSERT,DELETE,UPDATE命令修改该表。 将来版本的PostgreSQL有可能提供一些命令来修改这些内容,以便更清晰些。
在实现的时候,tmplacl字段将提供对模板自身的访问控制(也就是使用它创建 一个语言的权限),而不是对那些从模板创建的语言的访问控制。