↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3

附录 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. basebackup_to_shell
F.5.1. 配置参数
F.5.2. 作者
F.6. basic_archive
F.6.1. 配置参数
F.6.2. 注解
F.6.3. 作者
F.7. bloom
F.7.1. 参数
F.7.2. 示例
F.7.3. 操作符类接口
F.7.4. 限制
F.7.5. 作者
F.8. btree_gin
F.8.1. 用法示例
F.8.2. 作者
F.9. btree_gist
F.9.1. 用法示例
F.9.2. 作者
F.10. citext
F.10.1. 原理
F.10.2. 如何使用
F.10.3. 字符串比较行为
F.10.4. 限制
F.10.5. 作者
F.11. cube
F.11.1. 语法
F.11.2. 精度
F.11.3. 用法
F.11.4. 默认规则
F.11.5. 注解
F.11.6. 致谢
F.12. 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.13. dict_int
F.13.1. 配置
F.13.2. 用法
F.14. dict_xsyn
F.14.1. 配置
F.14.2. 用法
F.15. earthdistance
F.15.1. 基于立方体的地球距离
F.15.2. 基于点的地球距离
F.16. file_fdw
F.17. fuzzystrmatch
F.17.1. Soundex
F.17.2. Levenshtein
F.17.3. Metaphone
F.17.4. Double Metaphone
F.18. hstore
F.18.1. hstore 外部表示
F.18.2. hstore 操作符和函数
F.18.3. 索引
F.18.4. 示例
F.18.5. 统计信息
F.18.6. 兼容性
F.18.7. 转换
F.18.8. 作者
F.19. intagg
F.19.1. 函数
F.19.2. 使用示例
F.20. intarray
F.20.1. intarray 函数和操作符
F.20.2. 索引支持
F.20.3. 示例
F.20.4. 基准测试
F.20.5. 作者
F.21. isn
F.21.1. 数据类型
F.21.2. 类型转换
F.21.3. 函数和操作符
F.21.4. 示例
F.21.5. 参考书目
F.21.6. 作者
F.22. lo
F.22.1. 原理
F.22.2. 如何使用
F.22.3. 限制
F.22.4. 作者
F.23. ltree
F.23.1. 定义
F.23.2. 操作符和函数
F.23.3. 索引
F.23.4. 示例
F.23.5. 转换
F.23.6. 作者
F.24. old_snapshot
F.24.1. 函数
F.25. pageinspect
F.25.1. 通用函数
F.25.2. 堆函数
F.25.3. B-树函数
F.25.4. BRIN 函数
F.25.5. GIN 函数
F.25.6. GiST 函数
F.25.7. Hash 函数
F.26. passwordcheck
F.27. pg_buffercache
F.27.1. pg_buffercache 视图
F.27.2. 示例输出
F.27.3. 作者
F.28. pgcrypto
F.28.1. 通用 hash 函数
F.28.2. 密码 hash 函数
F.28.3. PGP 加密函数
F.28.4. 原始加密函数
F.28.5. 随机数据函数
F.28.6. 注解
F.28.7. 作者
F.29. pg_freespacemap
F.29.1. 函数
F.29.2. 示例输出
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
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 或 Trigraph)概念
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
F.37.1. 通用函数
F.37.2. 作者
F.38. postgres_fdw
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.39. seg
F.39.1. 原理
F.39.2. 语法
F.39.3. 精度
F.39.4. 用法
F.39.5. 注解
F.39.6. 致谢
F.40. sepgsql
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
F.42.1. 提供的函数
F.42.2. 作者
F.43. tablefunc
F.43.1. 提供的函数
F.43.2. 作者
F.44. tcn
F.45. test_decoding
F.46. tsm_system_rows
F.46.1. 示例
F.47. tsm_system_time
F.47.1. 示例
F.48. unaccent
F.48.1. 配置
F.48.2. 用法
F.48.3. 函数
F.49. uuid-ossp
F.49.1. uuid-ossp 函数
F.49.2. 构建 uuid-ossp
F.49.3. 作者
F.50. xml2
F.50.1. 弃用说明
F.50.2. 函数说明
F.50.3. xpath_table
F.50.4. XSLT 函数
F.50.5. 作者

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

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

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

make
make install

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

make check

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

make installcheck

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

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

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

CREATE EXTENSION module_name;

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

对于所有这些模块,除非该模块被视为“受信任的”,否则 CREATE EXTENSION 必须由数据库超级用户执行;如果模块是受信任的,则任何在当前数据库上具有 CREATE 权限的用户都可以执行该命令。下文各节会标明哪些模块是受信任的。一般来说,受信任模块是那些不能提供对数据库外部功能访问的模块。

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

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

F.1. adminpack #

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

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

表 F.1. adminpack 函数

函数

描述

pg_catalog.pg_file_write ( filename text, data text, append boolean ) → bigint

写入文本文件,或向其追加内容。

pg_catalog.pg_file_sync ( filename text ) → void

将文件或目录刷盘。

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_sync 对由 filename 指定的文件或目录执行 fsync。失败时会抛出错误(例如,指定的文件不存在)。请注意,data_sync_retry 对此函数没有影响,因此即使数据库文件刷盘失败,也不会引发 PANIC 级别的错误。

pg_file_rename 重命名文件。如果省略 archivename 或其值为空值,则它只是将 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)。

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.