Appendix E. 额外提供的模块

Table of Contents

E.1. adminpack
E.2. amcheck
E.2.1. 函数
E.2.2. 可选的heapallindexed验证
E.2.3. 有效地使用amcheck
E.2.4. 修复损坏
E.3. auto_explain
E.3.1. 配置参数
E.3.2. 例子
E.4. btree_gin
E.4.1. 用法示例
E.5. canopy
E.6. citext
E.6.1. 基本原理
E.6.2. 如何使用它
E.6.3. 串比较行为
E.6.4. 限制
E.7. 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 语句,将主键域值替换为提供的值
E.8. file_fdw
E.9. lt_buffercache
E.9.1. pg_buffercache 视图
E.9.2. 示例输出
E.10. lt_bulkload(批量加载)
E.10.1. 概述
E.10.2. 描述
E.10.3. 用法
E.10.4. 选项
E.10.5. 控制文件
E.10.6. 限制
E.10.7. 详细信息
E.11. lt_cheat_funcs
E.11.1. 函数
E.11.2. 编码转换
E.11.3. 配置参数
E.12. ltcluster
E.13. lt_cron
E.13.1. lt_cron 是什么?
E.13.2. 查看定时任务运行详细信息
E.14. lt_freespacemap
E.14.1. 函数
E.14.2. 示例输出
E.15. lt_log_long_xact
E.15.1. 使用方法
E.16. lt_ope
E.16.1. What is lt_ope?
E.16.2. function usage
E.17. lt_patch
E.17.1. lt_patch
E.17.2. 函数
E.17.3. 示例输出
E.18. lt_prewarm
E.18.1. 函数
E.18.2. 配置参数
E.19. lt_proctab
E.19.1. functions
E.20. lt_profile(轻量级开发工具配置文件)
E.20.1. 概念
E.20.2. 扩展架构
E.20.3. 先决条件
E.20.4. 创建扩展
E.20.5. 权限
E.20.6. 使用lt_profile
E.20.7. PWR报告中的节
E.20.8. PSH报告的部分
E.21. lt_qualstats
E.21.1. Configuration
E.21.2. 更新扩展
E.21.3. 使用方法
E.22. lt_show_plans
E.22.1. 配置参数
E.22.2. 用法
E.22.3. Functions
E.23. lt_sm
E.23.1. 什么是lt_sm?
E.23.2. 函数用法
E.23.3. 密钥管理
E.24. lt_sql_inspect
E.24.1. SQL 最佳实践
E.24.2. SQL 拦截
E.25. lt_standby_forward
E.25.1. 配置参数
E.25.2. 使用方法
E.25.3. 认证
E.25.4. 功能/限制
E.26. lt_stat_activity
E.26.1. 概念
E.26.2. 先决条件
E.26.3. 创建扩展
E.27. lt_stat_statements
E.27.1. pg_stat_statements 视图
E.27.2. 函数
E.27.3. 配置参数
E.27.4. 样例输出
E.28. lt_tempfile
E.29. lt_visibility
E.29.1. 函数
E.30. ltaudit
E.30.1. 介绍
E.30.2. 为什么使用ltaudit?
E.30.3. 使用注意事项
E.30.4. 设置
E.30.5. 会话审计日志记录
E.30.6. 对象审计日志记录
E.30.7. 格式
E.30.8. 注意事项
E.31. ltcrypto
E.31.1. 通用哈希函数
E.31.2. 密码哈希函数
E.31.3. PGP Encryption Functions
E.31.4. 原始加密函数
E.31.5. 随机数据函数
E.31.6. 注释
E.32. ltfce
E.32.1. 所有模式兼容的功能
E.32.2. 函数
E.32.3. 运算符类型兼容性
E.33. ltfincore
E.33.1. DESCRIPTION
E.33.2. EXAMPLES
E.33.3. 概要
E.33.4. 文档
E.33.5. DEBUG
E.33.6. REQUIREMENTS
E.33.7. LIMITATIONS
E.34. ltrowlocks
E.34.1. 概述
E.34.2. 示例输出
E.35. ltstattuple
E.35.1. 函数
E.36. lt_walminer
E.36.1. 什么是lt_walminer?
E.37. mysql_fdw
E.37.1. Installation
E.37.2. Enhancements
E.37.3. Usage
E.37.4. Examples
E.38. oracle_fdw
E.38.1. Cookbook
E.38.2. Objects created by the extension
E.38.3. 选项
E.38.4. 用法
E.38.5. 内部结构
E.38.6. 存在的问题
E.39. orafce
E.39.1. 与 Oracle 数据库兼容的特性
E.39.2. 使用orafce的注意事项
E.40. pageinspect
E.40.1. 通用函数
E.40.2. Heap Functions
E.40.3. B树函数
E.40.4. GIN函数
E.40.5. Hash函数
E.41. passwordcheck
E.42. postgres_fdw
E.42.1. postgres_fdw 的 FDW 选项
E.42.2. 连接管理
E.42.3. 事务管理
E.42.4. 远程查询优化
E.42.5. 远程查询执行环境
E.42.6. 跨版本兼容性
E.42.7. 例子
E.43. ptrack
E.43.1. 配置
E.43.2. 公开SQL API
E.43.3. 限制
E.43.4. 架构
E.44. pldebugger
E.44.1. 安装
E.44.2. 用法
E.44.3. 架构
E.45. rum
E.45.1. 介绍
E.45.2. 常用操作符和函数
E.45.3. 操作符类
E.46. system_stats
E.46.1. 安全性
E.46.2. 函数
E.46.3. 每个函数的详细输出
E.47. tablefunc
E.47.1. 所提供的函数
E.48. tsm_system_rows
E.48.1. 示例
E.49. tsm_system_time
E.49.1. 示例
E.50. uuid-ossp
E.50.1. uuid-ossp 函数
E.51. wal2sql
E.51.1. 配置
E.51.2. 配置参数
E.51.3. 参数示例
E.51.4. 注意
E.52. zhparser
E.52.1. 配置
E.52.2. 示例
E.52.3. 自定义字典
E.52.4. 自定义字典 2.1
E.53. lt_t3sdk
E.53.1. 安装
E.53.2. 概述
E.53.3. 函数
E.53.4. 例子

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

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

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

CREATE EXTENSION module_name;

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

对于所有这些模块,CREATE EXTENSION必须由数据库超级用户运行,除非该模块被视为trusted, 在这种情况下,它可以由在当前数据库上具有CREATE特权的任何用户运行。 受信任的模块将在下面的章节中标识为这样的模块。通常,受信任的模块不能提供对数据库外部函数的访问。

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

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