选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本的对应页面,或其他在上面列出的活跃大版本。

Appendix F. 额外提供的模块与扩展

目录

F.1. adminpack
F.2. amcheck
F.2.1. 函数
F.2.2. 可选的heapallindexed验证
F.2.3. 有效使用amcheck
F.2.4. 修复损坏
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. citext — 大小写不敏感的字符串类型
F.8.1. 原理
F.8.2. 如何使用
F.8.3. 字符串比较行为
F.8.4. 限制
F.8.5. 作者
F.9. cube — 多维立方体数据类型
F.9.1. 语法
F.9.2. 精度
F.9.3. 用法
F.9.4. 默认规则
F.9.5. 注意
F.9.6. 致谢
F.10. 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.11. dict_int — 用于整数的示例全文搜索词典
F.11.1. 配置
F.11.2. 用法
F.12. dict_xsyn — 示例同义词全文检索词典
F.12.1. 配置
F.12.2. 用法
F.13. earthdistance — 计算大圆距离
F.13.1. 基于立方体的地球距离
F.13.2. 基于点的地球距离
F.14. file_fdw
F.15. fuzzystrmatch — 确定字符串的相似性和距离
F.15.1. Soundex
F.15.2. Levenshtein
F.15.3. Metaphone
F.15.4. Double Metaphone
F.16. hstore
F.16.1. hstore 外部表示
F.16.2. hstore 操作符和函数
F.16.3. 索引
F.16.4. 示例
F.16.5. 统计信息
F.16.6. 兼容性
F.16.7. 转换
F.16.8. 作者
F.17. intagg — 整数聚合器和枚举器
F.17.1. 函数
F.17.2. 使用示例
F.18. intarray
F.18.1. intarray 函数和操作符
F.18.2. 索引支持
F.18.3. 示例
F.18.4. 基准测试
F.18.5. 作者
F.19. isn — 国际标准编号(ISBN、EAN、UPC 等)的数据类型
F.19.1. 数据类型
F.19.2. 类型转换
F.19.3. 函数和操作符
F.19.4. 示例
F.19.5. 参考文献
F.19.6. 作者
F.20. lo — 管理大对象
F.20.1. 原理
F.20.2. 如何使用
F.20.3. 限制
F.20.4. 作者
F.21. ltree
F.21.1. 定义
F.21.2. 操作符和函数
F.21.3. 索引
F.21.4. 示例
F.21.5. 转换
F.21.6. 作者
F.22. pageinspect
F.22.1. 通用函数
F.22.2. 堆函数
F.22.3. B-树函数
F.22.4. BRIN 函数
F.22.5. GIN 函数
F.22.6. 哈希函数
F.23. passwordcheck
F.24. pg_buffercache
F.24.1. pg_buffercache 视图
F.24.2. 示例输出
F.24.3. 作者
F.25. pgcrypto
F.25.1. 通用哈希函数
F.25.2. 密码哈希函数
F.25.3. PGP 加密函数
F.25.4. 原始加密函数
F.25.5. 随机数据函数
F.25.6. 注意事项
F.25.7. 作者
F.26. pg_freespacemap
F.26.1. 函数
F.26.2. 示例输出
F.26.3. 作者
F.27. pg_prewarm — 将关系数据预热到缓冲区缓存中
F.27.1. 函数
F.27.2. 配置参数
F.27.3. 作者
F.28. pgrowlocks — 显示表的行锁信息
F.28.1. 概述
F.28.2. 示例输出
F.28.3. 作者
F.29. pg_stat_statements
F.29.1. pg_stat_statements 视图
F.29.2. 函数
F.29.3. 配置参数
F.29.4. 示例输出
F.29.5. 作者
F.30. pgstattuple — 获取元组级统计信息
F.30.1. 函数
F.30.2. 作者
F.31. pg_trgm
F.31.1. 三字符组(Trigram 或 Trigraph)概念
F.31.2. 函数和操作符
F.31.3. GUC 参数
F.31.4. 索引支持
F.31.5. 文本搜索集成
F.31.6. 参考
F.31.7. 作者
F.32. pg_visibility
F.32.1. 函数
F.32.2. 作者
F.33. postgres_fdw
F.33.1. postgres_fdw 的 FDW 选项
F.33.2. 连接管理
F.33.3. 事务管理
F.33.4. 远程查询优化
F.33.5. 远程查询执行环境
F.33.6. 跨版本兼容性
F.33.7. 示例
F.33.8. 作者
F.34. seg — 用于线段或浮点区间的数据类型
F.34.1. 原理
F.34.2. 语法
F.34.3. 精度
F.34.4. 用法
F.34.5. 注意
F.34.6. 致谢
F.35. sepgsql — 基于 SELinux 标签的强制访问控制(MAC)安全模块
F.35.1. 概述
F.35.2. 安装
F.35.3. 回归测试
F.35.4. GUC 参数
F.35.5. 特性
F.35.6. sepgsql 函数
F.35.7. 限制
F.35.8. 外部资源
F.35.9. 作者
F.36. spi
F.36.1. refint — 用于实现引用完整性的函数
F.36.2. autoinc — 用于字段自动递增的函数
F.36.3. insert_username — 用于跟踪谁修改了表的函数
F.36.4. moddatetime — 用于跟踪最后修改时间的函数
F.37. sslinfo
F.37.1. 提供的函数
F.37.2. 作者
F.38. tablefunc
F.38.1. 提供的函数
F.38.2. 作者
F.39. tcn
F.40. test_decoding
F.41. tsm_system_rows
F.41.1. 示例
F.42. tsm_system_time
F.42.1. 示例
F.43. unaccent
F.43.1. 配置
F.43.2. 用法
F.43.3. 函数
F.44. uuid-ossp
F.44.1. uuid-ossp 函数
F.44.2. 构建uuid-ossp
F.44.3. 作者
F.45. xml2 — XPath 查询与 XSLT 功能
F.45.1. 弃用说明
F.45.2. 函数说明
F.45.3. xpath_table
F.45.4. XSLT 函数
F.45.5. 作者

本附录与下一附录包含有关 PostgreSQL 发行版中 contrib 目录中可选组件的信息。 这些组件包括移植工具、分析实用程序,以及不属于 PostgreSQL 核心系统的 插件功能。之所以将它们单独提供,主要是因为它们面向的受众有限, 或者实验性太强,不适合作为主源码树的一部分。但这并不影响它们的实用性。

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

从源码发行版构建时,除非构建“world”目标(见Step 2),否则这些组件不会自动构建。可以运行以下命令来构建并安装所有组件:

make
make install

这些命令应在已配置好的源码树的contrib目录中运行;若只想构建并安装某个选定的模块,则可在该模块的子目录中执行同样的命令。许多模块都带有回归测试,可以运行以下命令来执行:

make check

这是在安装前执行的命令;也可以运行

make installcheck

,此时需要已有一个PostgreSQL服务器正在运行。

如果你使用的是预打包版本的 PostgreSQL, 这些组件通常会作为单独的子包提供,例如 postgresql-contrib

许多模块提供新的用户定义函数、操作符或类型。安装代码后,要使用其中某个模块,就需要在数据库系统中注册新的 SQL 对象。在PostgreSQL9.1 及后续版本中,这可通过执行CREATE EXTENSION命令完成。在一个新建的数据库中,你可以直接执行:

CREATE EXTENSION module_name;

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

许多模块允许你将其对象安装到所选的模式中。要这样做,请在CREATE EXTENSION命令中加入SCHEMA schema_name。默认情况下,这些对象会被放入当前的创建目标模式,而该模式默认是public

如果你的数据库是从PostgreSQL9.1 之前的版本通过转储和重新载入升级而来的,并且其中一直在使用该模块的 9.1 之前版本,则应改为执行:

CREATE EXTENSION module_name FROM unpackaged;

这会将该模块在 9.1 之前版本中的对象更新为一个正规的扩展对象。今后该模块的更新将由ALTER EXTENSION管理。有关扩展更新的更多信息,请参见Section 37.17

但请注意,其中有些模块并不是这种意义上的扩展,而是通过其他方式加载到服务器中,例如借助shared_preload_libraries。详情见各模块文档。

F.1. adminpack #

adminpack提供了一些支持函数,pgAdmin和其他管理与维护工具可使用这些函数提供附加功能,例如远程管理服务器日志文件。默认情况下,只有超级用户才允许使用所有这些函数,但也可以使用GRANT命令允许其他用户使用。

Table F.1中显示的函数提供对承载服务器的机器上文件的写访问。(另见Table 9.94中的函数,它们提供只读访问。)除非用户是超级用户,或者根据函数的不同被授予 pg_read_server_files 或 pg_write_server_files 角色之一,否则只能访问数据库集簇目录内的文件,但可以使用相对路径或绝对路径。

Table F.1. adminpack 函数

Name 返回类型 描述
pg_catalog.pg_file_write(filename text, data text, append boolean) bigint 写入文本文件或向其追加内容
pg_catalog.pg_file_rename(oldname text, newname text [, archivename text]) boolean 重命名文件
pg_catalog.pg_file_unlink(filename text) boolean 删除文件
pg_catalog.pg_logdir_ls() setof record 列出log_directory目录中的日志文件

pg_file_write将指定的data写入由filename指定的文件中。如果append为 false,则该文件必须尚不存在。如果append为 true,则该文件可以已经存在,并且若已存在则会向其追加内容。返回写入的字节数。

pg_file_rename重命名文件。如果省略archivename或其值为 NULL,则它只是将oldname重命名为newname(后者必须尚不存在)。如果提供了archivename,它会先将newname重命名为archivename(后者必须尚不存在),然后再将oldname重命名为newname。如果第二个重命名步骤失败,它会在报告错误之前尝试将archivename再改回newname。成功时返回 true;如果源文件不存在或不可写,则返回 false;其他情况会抛出错误。

pg_file_unlink删除指定的文件。成功时返回 true;如果指定的文件不存在,或者unlink()调用失败,则返回 false;其他情况会抛出错误。

pg_logdir_ls返回log_directory目录中所有日志文件的起始时间戳和路径名。要使用此函数,log_filename参数必须保持默认设置(postgresql-%Y-%m-%d_%H%M%S.log)。