暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【每日分享】2022.07.14 extension

原创 Maleah 2022-07-14
397

PG extension

PostgreSQL支持各种不同的扩展,进而丰富数据库本身的功能。常用的插件有:auto_explainpg_stat_statementspageinspectpg_repackpostGISpostgres_fdw

1、相关文件:

利用C语言编写extension的几个重要文件:

  • 控制文件(.control文件):控制插件的版本

    内容:

    • comment:关于扩展的描述,仅在安装时应用。
    • default_version:当不需要特定的版本时,作为默认安装的版本。
    • module_pathname:一般为$libdir/extension_name
    • relocatable:一个布尔类型的标志,标志该插件是否是可重定位的。
    • trusted:13版本新增选项,简单来说,该选项为true则允许非超级用户(相应数据库有CREATE权限)安装扩展

    例子:

image.png

  • SQL文件(.sql文件):要执行的SQL语句
    格式:extension_name--version.sql

  • 库文件(.c文件):函数

  • Makefile文件:用于make & make install

    make - 生成.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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论