pg_pltemplate
目录pg_pltemplate
存储了过程语言的“模板”信息。一个语言的模板允许我们在一个特定数据库中以一个简单的CREATE LANGUAGE
命令创建语言,而不需要指定实现细节。
和大部分系统目录不同,pg_pltemplate
是在集簇的所有数据库之间共享的:在一个集簇中只有一份pg_pltemplate
拷贝,而不是每个数据库一份。这使得在每个需要的数据库中都可以访问该信息。
表 51.37. pg_pltemplate
的列
名称 | 类型 | 描述 |
---|---|---|
tmplname | name | 该模板适用的语言名字 |
tmpltrusted | boolean | 如果语言被认为是可信的则为真 |
tmpldbacreate | boolean | 如果语言可以被一个数据库拥有者创建则为真 |
tmplhandler | text | 调用处理函数的名字 |
tmplinline | text | 匿名阻塞处理函数的名字,如果没有则为空 |
tmplvalidator | text | 验证函数的名字,如果没有则为空 |
tmpllibrary | text | 实现语言的共享库的路径 |
tmplacl | aclitem[] | 模板的访问权限(并未真正使用) |
目前任何命令都不能操纵过程语言模板。要改变内建信息,超级用户必须使用普通的INSERT
、DELETE
或UPDATE
命令修改该表。
在PostgreSQL的某个未来版本的发布中,pg_pltemplate
很有可能会被移除,而这些关于过程语言的知识可能会保持在它们相应的扩展安装脚本中。