PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

Appendix F. 随附额外模块与扩展

Table of Contents

F.1. amcheck — 校验表与索引一致性的工具
F.1.1. 函数
F.1.2. 可选的 heapallindexed 校验
F.1.3. 有效使用 amcheck
F.1.4. 修复损坏
F.2. auth_delay — 认证失败时暂停响应
F.2.1. 配置参数
F.2.2. 作者
F.3. auto_explain — 记录慢查询的执行计划
F.3.1. 配置参数
F.3.2. 示例
F.3.3. 作者
F.4. basebackup_to_shell — “shell” pg_basebackup 模块示例
F.4.1. 配置参数
F.4.2. 作者
F.5. basic_archive — WAL 归档模块示例
F.5.1. 配置参数
F.5.2. 注记
F.5.3. 作者
F.6. bloom — 布隆过滤器索引访问方法
F.6.1. 参数
F.6.2. 示例
F.6.3. 操作符类接口
F.6.4. 限制
F.6.5. 作者
F.7. btree_gin — 具有 B 树行为的 GIN 操作符类
F.7.1. 用法示例
F.7.2. 作者
F.8. btree_gist — 具有 B 树行为的 GiST 操作符类
F.8.1. 用法示例
F.8.2. 作者
F.9. citext — 大小写不敏感的字符串类型
F.9.1. 设计缘由
F.9.2. 使用方法
F.9.3. 字符串比较行为
F.9.4. 限制
F.9.5. 作者
F.10. cube — 多维立方体数据类型
F.10.1. 语法
F.10.2. 精度
F.10.3. 用法
F.10.4. 默认值
F.10.5. 注记
F.10.6. 致谢
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.12.1. 配置
F.12.2. 用法
F.13. dict_xsyn — 扩展同义词全文搜索字典示例
F.13.1. 配置
F.13.2. 用法
F.14. earthdistance — 计算大圆距离
F.14.1. 基于 Cube 的地球距离
F.14.2. 基于 Point 的地球距离
F.15. file_fdw — 访问服务器文件系统中的数据文件
F.16. fuzzystrmatch — 判断字符串相似度与距离
F.16.1. Soundex
F.16.2. Daitch-Mokotoff Soundex
F.16.3. Levenshtein
F.16.4. Metaphone
F.16.5. Double Metaphone
F.17. hstore — hstore 键/值数据类型
F.17.1. hstore 外部表示
F.17.2. hstore 操作符与函数
F.17.3. 索引
F.17.4. 示例
F.17.5. 统计
F.17.6. 兼容性
F.17.7. 转换
F.17.8. 作者
F.18. intagg — 整数聚合器与枚举器
F.18.1. 函数
F.18.2. 使用示例
F.19. intarray — 操作整型数组
F.19.1. intarray 函数与操作符
F.19.2. 索引支持
F.19.3. 示例
F.19.4. 基准测试
F.19.5. 作者
F.20. isn — 国际标准编号(ISBN、EAN、UPC 等)的数据类型
F.20.1. 数据类型
F.20.2. 类型转换
F.20.3. 函数与操作符
F.20.4. 配置参数
F.20.5. 示例
F.20.6. 参考文献
F.20.7. 作者
F.21. lo — 管理大对象
F.21.1. 设计缘由
F.21.2. 使用方法
F.21.3. 限制
F.21.4. 作者
F.22. ltree — 层次树状数据类型
F.22.1. 定义
F.22.2. 操作符与函数
F.22.3. 索引
F.22.4. 示例
F.22.5. 转换
F.22.6. 作者
F.23. pageinspect — 数据库页面的低层级检查
F.23.1. 通用函数
F.23.2. 堆函数
F.23.3. B 树函数
F.23.4. BRIN 函数
F.23.5. GIN 函数
F.23.6. GiST 函数
F.23.7. 哈希函数
F.24. passwordcheck — 检查密码强度
F.24.1. 配置参数
F.25. pg_buffercache — 检查 PostgreSQL 缓冲区缓存状态
F.25.1. pg_buffercache 视图
F.25.2. pg_buffercache_numa 视图
F.25.3. pg_buffercache_summary() 函数
F.25.4. pg_buffercache_usage_counts() 函数
F.25.5. pg_buffercache_evict() 函数
F.25.6. pg_buffercache_evict_relation() 函数
F.25.7. pg_buffercache_evict_all() 函数
F.25.8. 输出示例
F.25.9. 作者
F.26. pgcrypto — 密码学函数
F.26.1. 通用哈希函数
F.26.2. 密码哈希函数
F.26.3. PGP 加密函数
F.26.4. 原始加密函数
F.26.5. 随机数据函数
F.26.6. OpenSSL 支持函数
F.26.7. 配置参数
F.26.8. 注记
F.26.9. 作者
F.27. pg_freespacemap — 检查空闲空间映射
F.27.1. 函数
F.27.2. 输出示例
F.27.3. 作者
F.28. pg_logicalinspect — 逻辑解码组件检查
F.28.1. 函数
F.28.2. 作者
F.29. pg_overexplain — 让 EXPLAIN 输出更多细节
F.29.1. EXPLAIN (DEBUG)
F.29.2. EXPLAIN (RANGE_TABLE)
F.29.3. 作者
F.30. pg_prewarm — 将关系数据预加载到缓冲区缓存
F.30.1. 函数
F.30.2. 配置参数
F.30.3. 作者
F.31. pgrowlocks — 显示表的行锁信息
F.31.1. 概述
F.31.2. 输出示例
F.31.3. 作者
F.32. pg_stat_statements — 跟踪 SQL 规划与执行的统计信息
F.32.1. pg_stat_statements 视图
F.32.2. pg_stat_statements_info 视图
F.32.3. 函数
F.32.4. 配置参数
F.32.5. 输出示例
F.32.6. 作者
F.33. pgstattuple — 获取元组级统计信息
F.33.1. 函数
F.33.2. 作者
F.34. pg_surgery — 对关系数据执行底层修复操作
F.34.1. 函数
F.34.2. 作者
F.35. pg_trgm — 使用三元组匹配支持文本相似度
F.35.1. 三元组(Trigram)概念
F.35.2. 函数与操作符
F.35.3. GUC 参数
F.35.4. 索引支持
F.35.5. 与全文搜索结合
F.35.6. 参考资料
F.35.7. 作者
F.36. pg_visibility — 可见性映射信息与实用工具
F.36.1. 函数
F.36.2. 作者
F.37. pg_walinspect — 低层级 WAL 检查
F.37.1. 通用函数
F.37.2. 作者
F.38. postgres_fdw — 访问存储在外部 PostgreSQL 服务器中的数据
F.38.1. postgres_fdw 的 FDW 选项
F.38.2. 函数
F.38.3. 连接管理
F.38.4. 事务管理
F.38.5. 远程查询优化
F.38.6. 远程查询执行环境
F.38.7. 跨版本兼容性
F.38.8. 等待事件
F.38.9. 配置参数
F.38.10. 示例
F.38.11. 作者
F.39. seg — 用于线段或浮点区间的一种数据类型
F.39.1. 设计缘由
F.39.2. 语法
F.39.3. 精度
F.39.4. 用法
F.39.5. 注记
F.39.6. 致谢
F.40. sepgsql — 基于 SELinux、按标签实施的强制访问控制(MAC)安全模块
F.40.1. 概述
F.40.2. 安装
F.40.3. 回归测试
F.40.4. GUC 参数
F.40.5. 特性
F.40.6. Sepgsql 函数
F.40.7. 限制
F.40.8. 外部资源
F.40.9. 作者
F.41. spi — 服务器编程接口的特性/示例
F.41.1. refint — 实现引用完整性的函数
F.41.2. autoinc — 自增字段的函数
F.41.3. insert_username — 跟踪谁修改了表的函数
F.41.4. moddatetime — 跟踪最后修改时间的函数
F.42. sslinfo — 获取客户端 SSL 信息
F.42.1. 提供的函数
F.42.2. 作者
F.43. tablefunc — 返回表的函数(crosstab 等)
F.43.1. 提供的函数
F.43.2. 作者
F.44. tcn — 用于向监听者通知表内容变更的触发器函数
F.45. test_decoding — 基于 SQL 的 WAL 逻辑解码测试/示例模块
F.46. tsm_system_rows — TABLESAMPLE 的 SYSTEM_ROWS 采样方法
F.46.1. 示例
F.47. tsm_system_time — TABLESAMPLE 的 SYSTEM_TIME 采样方法
F.47.1. 示例
F.48. unaccent — 移除变音符号的文本搜索字典
F.48.1. 配置
F.48.2. 用法
F.48.3. 函数
F.49. uuid-ossp — UUID 生成器
F.49.1. uuid-ossp 函数
F.49.2. 构建 uuid-ossp
F.49.3. 作者
F.50. xml2 — XPath 查询与 XSLT 功能
F.50.1. 弃用通知
F.50.2. 函数描述
F.50.3. xpath_table
F.50.4. XSLT 函数
F.50.5. 作者

本附录与下一附录介绍 PostgreSQL 发行版中 contrib 目录下的可选组件。它们包括移植工具、分析实用程序,以及不属于 PostgreSQL 核心系统的插件特性。它们之所以被独立放置,主要是因为它们面向的受众有限,或者过于实验性而不适合进入主源码树。这并不妨碍它们的实用性。

本附录介绍 contrib 中的扩展及其他服务器插件模块库。Appendix G 介绍实用程序。

从源码发行版构建时,除非你构建 “world” 目标(参见 Step 2),否则这些可选组件不会被自动构建。你可以在已配置的源码树的 contrib 目录中运行以下命令来构建并安装所有组件:

make
make install

或者,要只构建并安装某个选定的模块,在该模块的子目录中执行同样的命令即可。许多模块带有回归测试,安装前可以运行以下命令执行它们:

make check

安装后(前提是已有 PostgreSQL 服务器在运行)可以运行:

如果你使用的是预先打包的 PostgreSQL 版本,这些组件通常以单独的子包形式提供,例如 postgresql-contrib。

许多组件以 扩展 的形式提供新的用户定义函数、操作符或类型。要使用其中某个扩展,在安装其代码之后,你需要在数据库系统中注册新的 SQL 对象。方法是执行 CREATE EXTENSION 命令。在一个全新的数据库中,你只需执行

CREATE EXTENSION extension_name;

该命令只在当前数据库中注册新的 SQL 对象,因此你需要在希望扩展功能可用的每个数据库中都运行它。另一种做法是在数据库 template1 中运行它,这样扩展会默认被复制到随后创建的数据库中。

对所有扩展而言,CREATE EXTENSION 命令都必须由数据库超级用户运行,除非该扩展被视为“可信”。可信扩展可以由任何在当前数据库上拥有 CREATE 特权的用户运行。可信的扩展会在后续各节中明确标注。一般而言,可信扩展是指无法提供对数据库外部功能访问的扩展。

默认安装中以下扩展是可信的:

btree_ginfuzzystrmatchltreetcn
btree_gisthstorepgcryptotsm_system_rows
citextintarraypg_trgmtsm_system_time
cubeisnsegunaccent
dict_intlotablefuncuuid-ossp

许多扩展允许你把其对象安装到你选择的模式中。为此,请在 CREATE EXTENSION 命令中加入 SCHEMA schema_name。默认情况下,对象会被放置到你当前的目标创建模式中,而该模式默认为 public。

不过请注意,其中一些组件并非这种意义上的“扩展”,而是以其他方式加载到服务器中,例如通过 shared_preload_libraries。细节请参见各组件的文档。