扩展元数据

关于 PostgreSQL 扩展插件元数据的说明

每个扩展都有一些元数据属性,以下是这些属性的说明

  • id

扩展标识,由 Pigsty 唯一分配给每个扩展的整型标识符,用于内部排序。

  • name

扩展名,扩展在 PostgreSQL 扩展系统目录中的名称,用于 CREATE EXTESION 时引用。

扩展一般会带有同名的 <name>.control<name>*.so,以及 <name>*.sql 文件。

  • alias

扩展别名,由 Pigsty 为每个逻辑扩展分配的唯一名称,通常与 扩展名 name 保持一致。 但存在一些特例,比如安装一个扩展 RPM 包如果引入多个 Extension,那么这些 Extension 会共享一个别名,例如 postgis

  • version

扩展默认版本,通常是扩展的最新版本。在一些特殊情况下,RPM 与 Debian 中可用的扩展版本可能略微有所不同。

  • category

扩展分类,用于区分扩展的功能类型,例如 gistimeragftsolapfeatlangtypefuncadminstatsecfdwsimetl 等。

  • tags

一些标签,用于描述扩展的特性

  • repo

扩展的来源仓库,CONTRIB 代表这是一个 PostgreSQL 自带扩展,PGDG 代表这是一个 PGDG 第一方扩展,PIGSTY 代表这是一个 Pigsty 第三方扩展。

  • lang

扩展使用的编程语言,通常为 C,也有一些 C++Rust 编写的扩展。也有纯 SQL 与纯数据组成的扩展。

  • need_load

带有 Load 标记,意味着这个扩展使用了 PostgreSQL Hook,需要动态加载,并重启 PostgreSQL 生效。 只有少量扩展需要动态加载,大部分扩展都是静态加载的。

  • need_ddl

带有 DDL 标记,意味着这个扩展需要执行 DDL 语句:CREATE EXTENSION

绝大多数扩展都需要执行 CREATE EXTENSION DDL 语句完成创建,但也有一些特例,例如 pg_stat_statementswal2json 等。

  • need_dbsu

安装此扩展是否需要超级用户权限?或者说,这个扩展是否被“信任” —— 只在数据库内部提供功能。

少部分扩展因为只在数据库内部提供功能,因此不需要超级用户权限就能安装,任何持有 CREATE 权限的用户都可以安装受信任的扩展。

  • relocatable

扩展是否可以被重定位?即是否可以被安装到其他 Schema 中?大部分扩展都是可以被重定位的,但也有一些特例,这些扩展会显式指定自己使用的扩展名。

  • schemas

如果扩展是可重定位的,那么它可以被安装到指定的 Schema 中,这个属性指定了扩展的默认 Schema。 PostgreSQL 默认只允许扩展使用一个 Schema,但一些扩展并不遵循这个规则,例如 citustimescaledb 等。

  • pg_ver

扩展支持的 PostgreSQL 版本,默认只考虑支持声明周期内的版本,即 12 - 16 。

  • requires

此扩展依赖的其他扩展,如果有的话。一个扩展可能同时依赖多个其他扩展,这些依赖关系通常在扩展的 control 文件中的 requires 字段里声明。

安装扩展时,可以通过 CREATE EXTENSION xxx CASCADE 语句自动安装依赖的扩展。

  • pkg

扩展软件包(RPM/DEB)名称,这里使用 $v 来替代具体的 PostgreSQL 大版本号。

  • pkg_ver

扩展软件包(RPM/DEB)的版本号,通常 RPM / DEB 包的版本与扩展本身的版本(version,从系统视图中得到)是一致的。 但依然存在极个别特例,软件包的版本与扩展本身的版本是不一致,甚至是独立演进管理的。

  • pkg_deps

扩展软件包(RPM/DEB)的依赖,不同于扩展本身的依赖(requires),这里是扩展 RPM/DEB 包的特殊依赖。

  • url

扩展的官方网站或者源代码仓库地址。

  • license

扩展使用的开源许可证,通常是 PostgreSQLMITApacheGPL 等。

  • en_desc

扩展的英文描述,用于描述扩展的功能与用途。

  • zh_desc

扩展的中文描述,用于描述扩展的功能与用途。

  • comment

一些额外的注释,用于描述扩展的特性或者注意事项。


Last modified 2024-08-04: add extensions (25d8a2b)