PG extension
PostgreSQL支持各种不同的扩展,进而丰富数据库本身的功能。常用的插件有:auto_explain、pg_stat_statements,pageinspect、pg_repack、postGIS、postgres_fdw等
1、相关文件:
利用C语言编写extension的几个重要文件:
-
控制文件(
.control文件):控制插件的版本内容:
- comment:关于扩展的描述,仅在安装时应用。
- default_version:当不需要特定的版本时,作为默认安装的版本。
- module_pathname:一般为
$libdir/extension_name - relocatable:一个布尔类型的标志,标志该插件是否是可重定位的。
- trusted:13版本新增选项,简单来说,该选项为true则允许非超级用户(相应数据库有CREATE权限)安装扩展
例子:

-
SQL文件(
.sql文件):要执行的SQL语句
格式:extension_name--version.sql -
库文件(
.c文件):函数 -
Makefile文件:用于make & make installmake - 生成
.so文件;make install - 将
.control和.sql文件拷贝到share路径下,将.so文件(如果存在)拷贝到lib路径下
2、原理解析
Create extension原理:
程序先会解析控制文件,取出需要执行的sql版本号,同时创建extension oid并加入到pg_extension中。然后解析相对应的sql文件。解析后执行其中的语句。
Drop extension原理:
将extension oid 从pg_extension 删除掉并级联删除掉相关信
最后修改时间:2022-07-15 16:44:26
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




