扩展元数据
Module:
每个扩展都有一些元数据属性,以下是这些属性的说明
id
扩展标识,由 Pigsty 唯一分配给每个扩展的整型标识符,用于内部排序。
name
扩展名,扩展在 PostgreSQL 扩展系统目录中的名称,用于 CREATE EXTESION
时引用。
扩展一般会带有同名的 <name>.control
, <name>*.so
,以及 <name>*.sql
文件。
alias
扩展别名,由 Pigsty 为每个逻辑扩展分配的唯一名称,通常与 扩展名 name
保持一致。
但存在一些特例,比如安装一个扩展 RPM 包如果引入多个 Extension,那么这些 Extension 会共享一个别名,例如 postgis
version
扩展默认版本,通常是扩展的最新版本。在一些特殊情况下,RPM 与 Debian 中可用的扩展版本可能略微有所不同。
category
扩展分类,用于区分扩展的功能类型,例如 gis
,time
,rag
,fts
,olap
,feat
,lang
,type
,func
,admin
,stat
,sec
,fdw
,sim
,etl
等。
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_statements
,wal2json
等。
need_dbsu
安装此扩展是否需要超级用户权限?或者说,这个扩展是否被“信任” —— 只在数据库内部提供功能。
少部分扩展因为只在数据库内部提供功能,因此不需要超级用户权限就能安装,任何持有 CREATE
权限的用户都可以安装受信任的扩展。
relocatable
扩展是否可以被重定位?即是否可以被安装到其他 Schema 中?大部分扩展都是可以被重定位的,但也有一些特例,这些扩展会显式指定自己使用的扩展名。
schemas
如果扩展是可重定位的,那么它可以被安装到指定的 Schema 中,这个属性指定了扩展的默认 Schema。
PostgreSQL 默认只允许扩展使用一个 Schema,但一些扩展并不遵循这个规则,例如 citus
与 timescaledb
等。
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
扩展使用的开源许可证,通常是 PostgreSQL
,MIT
,Apache
,GPL
等。
en_desc
扩展的英文描述,用于描述扩展的功能与用途。
zh_desc
扩展的中文描述,用于描述扩展的功能与用途。
comment
一些额外的注释,用于描述扩展的特性或者注意事项。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.