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

Part V. 服务端扩展与编程

本篇深入探讨如何利用用户自定义函数、自定义数据类型、触发器等高级机制扩展服务器核心功能。这些属于进阶技术专题,建议在充分掌握 PostgreSQL 的其他用户级文档后再行深入学习。后续章节系统阐述了 PostgreSQL 官方支持的服务端过程语言扩展以及服务端编程的通用规范。在研读具体服务端语言之前,请务必先通读 Chapter 36 的前置基础章节。

Table of Contents

36. 扩展 SQL
36.1. 可扩展性的工作原理
36.2. 类型系统
36.3. 用户自定义函数
36.4. 用户自定义存储过程
36.5. SQL 语言函数
36.6. 函数重载
36.7. 函数易失性分类
36.8. 过程语言函数
36.9. 内部函数
36.10. C 语言函数
36.11. 函数优化信息
36.12. 用户定义的聚集函数
36.13. 用户定义类型
36.14. 用户自定义操作符
36.15. 操作符优化信息
36.16. 让扩展与索引对接
36.17. 将相关对象打包为扩展
36.18. 扩展构建基础设施 PGXS
37. 触发器
37.1. 触发器行为概述
37.2. 数据变更可见性
37.3. C 语言编写触发器函数
37.4. 完整触发器示例
38. 事件触发器
38.1. 事件触发器行为概述
38.2. C 语言编写事件触发器
38.3. 事件触发器基础示例
38.4. 表重写事件触发器示例
38.5. 数据库登录事件触发器示例
39. 规则系统
39.1. 查询树结构剖析
39.2. 视图与规则系统
39.3. 物化视图
39.4. 针对 INSERT、UPDATE 与 DELETE 的规则
39.5. 规则与权限
39.6. 规则与命令状态
39.7. 规则与触发器的对比
40. 过程语言
40.1. 安装过程语言
41. PL/pgSQL:SQL 过程语言
41.1. 概述
41.2. PL/pgSQL 的基本结构
41.3. 变量声明
41.4. 表达式
41.5. 基础语句
41.6. 控制结构
41.7. 游标
41.8. 事务管理
41.9. 错误与日志消息
41.10. 触发器函数
41.11. PL/pgSQL 底层运行机制
41.12. PL/pgSQL 开发技巧与实用建议
41.13. 从 Oracle PL/SQL 迁移到 PL/pgSQL
42. PL/Tcl — Tcl 过程语言
42.1. 概述
42.2. PL/Tcl 函数与参数
42.3. PL/Tcl 中的数据值
42.4. PL/Tcl 中的全局数据
42.5. 从 PL/Tcl 访问数据库
42.6. PL/Tcl 中的触发器函数
42.7. PL/Tcl 中的事件触发器函数
42.8. PL/Tcl 中的错误处理
42.9. PL/Tcl 中的显式子事务
42.10. 事务管理
42.11. PL/Tcl 配置
42.12. Tcl 过程名称
43. PL/Perl — Perl 过程语言
43.1. PL/Perl 函数与参数
43.2. PL/Perl 中的数据值
43.3. 内建函数
43.4. PL/Perl 中的全局值
43.5. 受信与非受信 PL/Perl
43.6. PL/Perl 触发器
43.7. PL/Perl 事件触发器
43.8. PL/Perl 的内部机制
44. PL/Python — Python 过程语言
44.1. PL/Python 函数
44.2. 数据值
44.3. 共享数据
44.4. 匿名代码块
44.5. 触发器函数
44.6. 数据库访问
44.7. 显式子事务
44.8. 事务管理
44.9. 实用工具函数
44.10. Python 2 与 Python 3
44.11. 环境变量
45. 服务端编程接口(SPI)
45.1. 接口核心函数
45.2. 接口支持函数
45.3. 内存管理
45.4. 事务管理
45.5. 数据更改的可见性
45.6. 示例
46. 后台工作进程
47. 逻辑解码
47.1. 逻辑解码示例
47.2. 逻辑解码概念与架构
47.3. 流复制协议接口
47.4. 逻辑解码 SQL 函数接口
47.5. 逻辑解码相关系统目录与视图
47.6. 逻辑解码输出插件开发
47.7. 逻辑解码输出写入器
47.8. 逻辑解码对同步复制的支持
47.9. 大事务流式解码传输
47.10. 两阶段提交支持
48. 复制进度跟踪与复制源
49. 归档模块
49.1. 初始化函数
49.2. 归档模块回调接口
50. OAuth 验证器模块
50.1. 安全设计验证器模块
50.2. 初始化函数
50.3. OAuth 验证器回调接口