附录 F. 额外提供的模块与扩展
目录
- F.1. amcheck — 用于验证表和索引一致性的工具
- F.2. auth_delay — 在认证失败时暂停
- F.3. auto_explain — 记录慢查询的执行计划
- F.4. basebackup_to_shell — 示例“shell” pg_basebackup 模块
- F.5. basic_archive — 一个 WAL 归档模块示例
- F.6. bloom — 布隆过滤器索引访问方法
- F.7. btree_gin — 具有 B-树行为的 GIN 操作符类
- F.8. btree_gist — 具有 B-树行为的 GiST 操作符类
- F.9. citext — 大小写不敏感的字符串类型
- F.10. cube — 多维立方体数据类型
- F.11. dblink — 连接到其他 PostgreSQL 数据库
- dblink_connect — 打开到远程数据库的持久连接
- dblink_connect_u — 不安全地打开到远程数据库的持久连接
- dblink_disconnect — 关闭到远程数据库的持久连接
- dblink — 在远程数据库中执行查询
- dblink_exec — 在远程数据库中执行命令
- dblink_open — 在远程数据库中打开游标
- dblink_fetch — 返回远程数据库中已打开游标的行
- dblink_close — 关闭远程数据库中的游标
- dblink_get_connections — 返回所有打开的命名 dblink 连接的名称
- dblink_error_message — 获取命名连接上的最后一条错误消息
- dblink_send_query — 向远程数据库发送异步查询
- dblink_is_busy — 检查连接是否正忙于异步查询
- dblink_get_notify — 检索连接上的异步通知
- dblink_get_result — 获取异步查询结果
- dblink_cancel_query — 取消命名连接上的任何活动查询
- dblink_get_pkey — 返回关系主键字段的位置和字段名
- dblink_build_sql_insert — 使用本地元组构造 INSERT 语句,并用提供的替代值替换主键字段值
- dblink_build_sql_delete — 使用提供的主键字段值构造 DELETE 语句
- dblink_build_sql_update — 使用本地元组构造 UPDATE 语句,并用提供的替代值替换主键字段值
- F.12. dict_int — 用于整数的示例全文检索词典
- F.13. dict_xsyn — 示例同义词全文检索词典
- F.14. earthdistance — 计算大圆距离
- F.15. file_fdw — 访问服务器文件系统中的数据文件
- F.16. fuzzystrmatch — 确定字符串的相似性和距离
- F.17. hstore — hstore 键/值数据类型
- F.18. intagg — 整数聚合器和枚举器
- F.19. intarray — 操作整数数组
- F.20. isn — 国际标准编号(ISBN、EAN、UPC 等)的数据类型
- F.21. lo — 管理大对象
- F.22. ltree — 层次树状数据类型
- F.23. pageinspect — 数据库页的底层检查
- F.24. passwordcheck — 验证密码强度
- F.25. pg_buffercache — 检查 PostgreSQL 缓冲区缓存状态
- F.25.1.
pg_buffercache视图 - F.25.2.
pg_buffercache_os_pages视图 - F.25.3.
pg_buffercache_numa视图 - F.25.4.
pg_buffercache_summary()函数 - F.25.5.
pg_buffercache_usage_counts()函数 - F.25.6.
pg_buffercache_evict()函数 - F.25.7.
pg_buffercache_evict_relation()函数 - F.25.8.
pg_buffercache_evict_all()函数 - F.25.9.
pg_buffercache_mark_dirty()函数 - F.25.10.
pg_buffercache_mark_dirty_relation()函数 - F.25.11.
pg_buffercache_mark_dirty_all()函数 - F.25.12. 示例输出
- F.25.13. 作者
- F.25.1.
- F.26. pgcrypto — 密码学函数
- F.27. pg_freespacemap — 检查空闲空间映射
- F.28. pg_logicalinspect — 逻辑解码组件检查
- F.29. pg_overexplain — 允许 EXPLAIN 输出更多细节
- F.30. pg_plan_advice — 帮助规划器获得正确的计划
- F.31. pg_prewarm — 将关系数据预热到缓冲区缓存中
- F.32. pgrowlocks — 显示表的行锁信息
- F.33. pg_stash_advice — 存储并自动应用计划建议
- F.34. pg_stat_statements — 跟踪 SQL 计划和执行统计信息
- F.35. pgstattuple — 获取元组级统计信息
- F.36. pg_surgery — 对关系数据执行底层手术
- F.37. pg_trgm — 基于三字符组匹配的文本相似度支持
- F.38. pg_visibility — 可见性映射信息与工具
- F.39. pg_walinspect — WAL 的底层检查
- F.40. postgres_fdw — 访问存储在外部 PostgreSQL 服务器中的数据
- F.41. seg — 用于线段或浮点区间的数据类型
- F.42. sepgsql — 基于 SELinux 标签的强制访问控制(MAC)安全模块
- F.43. spi — 服务器编程接口特性/示例
- F.44. sslinfo — 获取客户端 SSL 信息
- F.45. tablefunc — 返回表的函数(
crosstab等) - F.46. tcn — 用于向监听者通知表内容变更的触发器函数
- F.47. test_decoding — 用于 WAL 逻辑解码的基于 SQL 的测试/示例模块
- F.48. tsm_system_rows —
TABLESAMPLE的SYSTEM_ROWS采样方法 - F.49. tsm_system_time —
TABLESAMPLE的SYSTEM_TIME采样方法 - F.50. unaccent — 去除变音符号的文本检索词典
- F.51. uuid-ossp — UUID 生成器
- F.52. xml2 — XPath 查询与 XSLT 功能
本附录与下一附录包含有关
PostgreSQL 发行版中
contrib 目录中可选组件的信息。这些组件包括移植工具、分析实用程序,以及不属于 PostgreSQL 核心系统的插件功能。之所以将它们单独提供,主要是因为它们面向的受众有限,或者实验性太强,不适合作为主源码树的一部分。但这并不影响它们的实用性。
本附录介绍位于 contrib 中的扩展以及其他服务器插件模块库。附录 G 介绍实用程序。
从源码发行版构建时,除非构建“world”目标(见步骤 2),否则这些可选组件不会自动构建。你可以在已配置好的源码树的 contrib 目录中运行:
makemake install
以构建并安装所有组件;若只想构建并安装某个选定的模块,则可在该模块的子目录中执行同样的命令。许多模块都带有回归测试,可以在安装前运行:
make check
或在 PostgreSQL 服务器已经运行后运行:
make installcheck
如果你使用的是预打包版本的 PostgreSQL,这些组件通常会作为单独的子包提供,例如
postgresql-contrib。
许多组件提供新的用户定义函数、操作符或类型,并将其打包为扩展。安装代码后,要使用其中某个扩展,就需要在数据库系统中注册新的 SQL 对象。这可通过执行 CREATE EXTENSION 命令完成。在一个新建的数据库中,你可以直接执行:
CREATE EXTENSION extension_name;
该命令只会在当前数据库中注册这些新的 SQL 对象,因此需要在每个希望使用该扩展功能的数据库中运行它。另一种做法是在 template1
数据库中运行它,这样该扩展默认会被复制到随后创建的数据库中。
对于所有扩展,除非该扩展被视为“受信任的”,否则
CREATE EXTENSION 命令必须由数据库超级用户执行。受信任扩展可以由任何在当前数据库上具有 CREATE 权限的用户执行。下文各节会标明哪些扩展是受信任的。一般来说,受信任扩展是那些不能提供对数据库外部功能访问的扩展。
在默认安装中,以下扩展是受信任的:
| btree_gin | fuzzystrmatch | ltree | tcn |
| btree_gist | hstore | pgcrypto | tsm_system_rows |
| citext | intarray | pg_trgm | tsm_system_time |
| cube | isn | seg | unaccent |
| dict_int | lo | tablefunc | uuid-ossp |
许多扩展允许你将其对象安装到所选的模式中。要这样做,请在
CREATE EXTENSION 命令中加入
SCHEMA 。默认情况下,这些对象会被放入当前的创建目标模式,而该模式默认是
schema_namepublic。
但请注意,其中有些组件并不是这种意义上的“扩展”,而是通过其他方式加载到服务器中,例如借助 shared_preload_libraries。详情见各组件文档。