文章转自华为云社区,作者:zenith,原文链接:https://bbs.huaweicloud.com/blogs/248076
在pg的官方文档中指出,pg_pltemplate存储了过程语言的“模板”信息。一个语言的模板允许我们在一个特定数据库中以一个简单的CREATE LANGUAGE命令创建语言,而不需要指定实现细节。
pg_pltemplate的列:
| 名称 | 类型 | 描述 |
|---|---|---|
| tmplname | name | 该模板适用的语言名字 |
| tmpltrusted | boolean | 如果语言被认为是可信的则为真 |
| tmpldbacreate | boolean | 如果语言可以被一个数据库拥有者创建则为真 |
| tmplhandler | text | 调用处理函数的名字 |
| tmplinline | text | 匿名阻塞处理函数的名字,如果没有则为空 |
| tmplvalidator | text | 验证函数的名字,如果没有则为空 |
| tmpllibrary | text | 实现语言的共享库的路径 |
| tmplacl | aclitem[] | 模板的访问权限(并未真正使用) |
但是在pg13中,却发现没有这个表了,对其操作会报错:
ERROR: relation “pg_catalog.pg_pltemplate” does not exist
找到了pg13的release notes,发现果然被删掉了:

从pg的文档中的描述也能看出,这张表会在未来被删掉的:
在PostgreSQL的某个未来版本的发布中,pg_pltemplate很有可能会被移除,而这些关于过程语言的知识可能会保持在它们相应的扩展安装脚本中。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




