一个扩展
是一个代码和 SQL 对象包,用于扩展 PostgreSQL 的功能。
扩展支持是在PostgreSQL 9.1中引入的。
psql
可以使用斜杠命令\dx
列出可用的扩展;\dx+ 会列出每个扩展及其关联的对象。示例请参见下文。
系统目录对象
表
视图
函数
pg_extension_update_paths()
pg_get_loaded_modules()
(PostgreSQL 18 及更高版本)
Contrib模块
许多contrib 模块是以扩展的形式实现的。
在提交629b3af2中,大量合适的现有 contrib 模块被转换为扩展。
变更历史
- PostgreSQL 18
- 可加载模块可以通过
PG_MODULE_MAGIC_EXT
宏报告名称和版本信息(提交9324c8c5)
- 可加载模块可以通过
- PostgreSQL 16
- 添加了
@extschema:name@
和no_relocate
选项(提交72a5b1fc)
- 添加了
- PostgreSQL 13
- PostgreSQL 10
- PostgreSQL 9.1
- 许多contrib 模块被转换为扩展(提交629b3af2)
- 添加(提交 d9572c4e)
示例
列出已安装的扩展
postgres=# \dx List of installed extensions Name | Version | Schema | Description --------------------+---------+------------+----------------------------------------------------------- pg_stat_statements | 1.7 | public | track execution statistics of all SQL statements executed plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (2 rows)
列出已安装的扩展及其关联的对象
postgres=# \dx+ Objects in extension "pg_stat_statements" Object description --------------------------------------------------- function pg_stat_statements(boolean) function pg_stat_statements_reset(oid,oid,bigint) view pg_stat_statements (3 rows) Objects in extension "plpgsql" Object description ------------------------------------------- function plpgsql_call_handler() function plpgsql_inline_handler(internal) function plpgsql_validator(oid) language plpgsql (4 rows)
参考资料
- PostgreSQL documentation: 将相关对象打包到扩展中
- PostgreSQL documentation: 扩展构建基础设施
- PostgreSQL documentation: CREATE EXTENSION
- PostgreSQL documentation: ALTER EXTENSION
- PostgreSQL documentation: DROP EXTENSION
有用链接
- PostgreSQL 受信任扩展入门 - Pavlo Golub / CyberTec 于 2025 年 4 月发表的博文
- postgresql_extension_support - Evan H. Stanton 维护的第三方扩展数据库