附录 F. 额外提供的模块

目录

F.1. adminpack
F.2. amcheck
F.2.1. 函数
F.2.2. 有效地使用amcheck
F.2.3. 修复损坏
F.3. auth_delay
F.3.1. 配置参数
F.3.2. 作者
F.4. auto_explain
F.4.1. 配置参数
F.4.2. 例子
F.4.3. 作者
F.5. bloom
F.5.1. 参数
F.5.2. 例子
F.5.3. 操作符类接口
F.5.4. 限制
F.5.5. 作者
F.6. btree_gin
F.6.1. 用法示例
F.6.2. 作者
F.7. btree_gist
F.7.1. 用法示例
F.7.2. 作者
F.8. chkpass
F.8.1. 作者
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
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. 基于立方体的地球距离
F.14.2. 基于点的地球距离
F.15. file_fdw
F.16. fuzzystrmatch
F.16.1. Soundex
F.16.2. Levenshtein
F.16.3. Metaphone
F.16.4. 双 Metaphone
F.17. 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
F.20.1. 数据类型
F.20.2. 造型
F.20.3. 函数和操作符
F.20.4. 例子
F.20.5. 参考文献
F.20.6. 作者
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. B-tree 函数
F.23.3. BRIN 函数
F.23.4. GIN 函数
F.23.5. Hash 函数
F.24. passwordcheck
F.25. pg_buffercache
F.25.1. pg_buffercache视图
F.25.2. 样例输出
F.25.3. 作者
F.26. pgcrypto
F.26.1. 普通哈希函数
F.26.2. 口令哈希函数
F.26.3. PGP 加密函数
F.26.4. 原始的加密函数
F.26.5. 随机数据函数
F.26.6. 注解
F.26.7. 作者
F.27. pg_freespacemap
F.27.1. 函数
F.27.2. 样例输出
F.27.3. 作者
F.28. pg_prewarm
F.28.1. 函数
F.28.2. 作者
F.29. pgrowlocks
F.29.1. 概述
F.29.2. 样例输出
F.29.3. 作者
F.30. pg_stat_statements
F.30.1. pg_stat_statements视图
F.30.2. 函数
F.30.3. 配置参数
F.30.4. 示例输出
F.30.5. 作者
F.31. pgstattuple
F.31.1. 函数
F.31.2. 作者
F.32. pg_trgm
F.32.1. Trigram(或者 Trigraph)概念
F.32.2. 函数和操作符
F.32.3. GUC 参数
F.32.4. 索引支持
F.32.5. 文本搜索集成
F.32.6. 参考
F.32.7. 作者
F.33. pg_visibility
F.33.1. 函数
F.33.2. 作者
F.34. postgres_fdw
F.34.1. postgres_fdw 的 FDW 选项
F.34.2. 连接管理
F.34.3. 事务管理
F.34.4. 远程查询优化
F.34.5. 远程查询执行环境
F.34.6. 跨版本兼容性
F.34.7. 例子
F.34.8. 作者
F.35. seg
F.35.1. 原理
F.35.2. 语法
F.35.3. 精度
F.35.4. 用法
F.35.5. 注解
F.35.6. 开发人员
F.36. sepgsql
F.36.1. 概述
F.36.2. 安装
F.36.3. 回归测试
F.36.4. GUC 参数
F.36.5. 特性
F.36.6. Sepgsql 函数
F.36.7. 限制
F.36.8. 外部资源
F.36.9. 作者
F.37. spi
F.37.1. refint — 用于实现参照完整性的函数
F.37.2. timetravel — 实现时间旅行的函数
F.37.3. autoinc — 用于自增域的函数
F.37.4. insert_username — 用于跟踪谁修改了一个表的函数
F.37.5. moddatetime — 用于跟踪上一次修改时间的函数
F.38. sslinfo
F.38.1. 提供的函数
F.38.2. 作者
F.39. tablefunc
F.39.1. 所提供的函数
F.39.2. 作者
F.40. tcn
F.41. test_decoding
F.42. tsm_system_rows
F.42.1. 示例
F.43. tsm_system_time
F.43.1. 示例
F.44. unaccent
F.44.1. 配置
F.44.2. 用法
F.44.3. 函数
F.45. uuid-ossp
F.45.1. uuid-ossp 函数
F.45.2. 编译uuid-ossp
F.45.3. 作者
F.46. xml2
F.46.1. 废弃公告
F.46.2. 函数的描述
F.46.3. xpath_table
F.46.4. XSLT 函数
F.46.5. 作者

这个附录和下一个附录介绍在PostgreSQL发布的contrib目录中能找到的模块。包括移植工具、分析工具和插件特性,它们不是 PostgreSQL 核心系统的一部分,主要因为只有很少的用户会用到或者是还处于实验阶段。但这不会影响它们的使用。

这个附录覆盖了在contrib中能找到的扩展和其他服务器插件模块。附录 G覆盖了工具程序。

当从源码发布包编译时,这些组件不会自动被编译,除非编译了“world”目标(见步骤 2)。 可以在已配置的源代码树中的contrib路径下,通过下面的命令编译安装:

make
make install

或者只在选中模块的子目录下编译和安装。许多模块都有回归测试,可以通过下面的命令在安装之前运行测试:

make check

或者在一个PostgreSQL服务器正在运行时,运行

make installcheck

如果是用的是预打包版的PostgreSQL,这些模块通常可以作为一个单独的子包来获得, 如postgresql-contrib

许多模块提供新的用户自定义函数、操作符或数据类型。在已经安装了代码之后,为了使用这些模块,需要在数据库系统中注册新的 SQL 对象。在PostgreSQL 9.1 及之后的版本中,可以通过执行一个CREATE EXTENSION命令来完成。在一个新的数据库中,你可以简单地

CREATE EXTENSION module_name;

这个命令必须由一个数据库超级用户运行。这只会把新的 SQL 对象注册在当前数据库中,因此你需要在每一个你希望使用该模块功能的数据库中执行这个命令。另外,可以在template1数据库中运行这个命令以便该扩展能被默认地复制到后续创建的数据库中。

很多模块允许你将它们的对象安装在你选择的一个模式中。要这样做,需要将SCHEMA schema_name加入到CREATE EXTENSION命令中。默认情况下,这些对象将被放置在你的当前创建目标模式中,通常是public

如果你的数据库是从一个PostgreSQL 9.1 之前版本的转储载入而来,并且你已经在其中使用了一个 9.1 之前版本的该模块,你应该使用

CREATE EXTENSION module_name FROM unpackaged;

这会把该 9.1 之前的模块对象更新到一个正确的扩展对象。未来对该模块的更新将由ALTER EXTENSION管理。更多关于扩展更新的信息,请见第 37.15 节

不过注意,有一些这样的模块不是这种意义上的扩展,而是以某种其他方式被载入到服务器,例如使用shared_preload_libraries方式。每个模块详见其文档。