V. 服务器端编程

这部分是关于用户怎样通过增加用户定义的类型、操作符、聚合、查询语言和编程语言函数来扩展服务器功能。 这些是高级主题,可能需要在阅读完并理解所有其它 PostgreSQL 手册之后才能阅读。这部分后面的章节还描述了在PostgreSQL 里的服务器端编程语言。我们至少要读过第 35 章的头几节才能深入阅读有关服务器端编程语言的材料。

目录
35. 扩展 SQL
35.1. 扩展性如何工作
35.2. PostgreSQL类型系统
35.3. 用户定义的函数
35.4. 查询语言(SQL)函数
35.5. 函数重载
35.6. 函数易失性范畴
35.7. 过程语言函数
35.8. 内部函数
35.9. C-语言函数
35.10. 用户定义的聚集
35.11. 用户定义的类型
35.12. 用户定义的操作符
35.13. 操作符优化信息
35.14. 索引的接口扩展
35.15. 打包相关对象到一个扩展中
35.16. 扩展的构建基础设施
36. 触发器
36.1. 触发器行为概述
36.2. 数据改变的可见性
36.3. 用 C 编写触发器函数
36.4. 一个完整的触发器实例
37. 事件触发器
37.1. 事件触发器行为综述
37.2. 事件触发器触发矩阵
37.3. 用 C 编写事件触发器函数
37.4. 一个完整的事件触发器实例
37.5. 表重写事件触发器例子
38. 规则系统
38.1. 查询树
38.2. 视图和规则系统
38.3. 物化视图
38.4. INSERTUPDATEDELETE上的规则
38.5. 规则和权限
38.6. 规则和命令状态
38.7. 规则 vs 触发器
39. 过程语言
39.1. 安装过程语言
40. PL/pgSQL - SQL过程语言
40.1. 综述
40.2. PL/pgSQL的结构
40.3. 声明
40.4. 表达式
40.5. 基本语句
40.6. 控制结构
40.7. 游标
40.8. 错误和消息
40.9. 触发器过程
40.10. PL/pgSQL的内部
40.11. PL/pgSQL开发提示
40.12. Oracle PL/SQL 移植
41. PL/Tcl - Tcl 过程语言
41.1. 概述
41.2. PL/Tcl 函数和参数
41.3. PL/Tcl里的数据值
41.4. PL/Tcl里的全局量
41.5. 在PL/Tcl里访问数据库
41.6. PL/Tcl里的触发器过程
41.7. PL/Tcl中的事件触发器程序
41.8. 模块和unknown的命令
41.9. Tcl 过程名字
42. PL/Perl - Perl 过程语言
42.1. PL/Perl 函数和参数
42.2. PL/Perl里的数据值
42.3. 内置函数
42.4. PL/Perl里的全局变量
42.5. 可信的和不可信的 PL/Perl
42.6. PL/Perl 触发器
42.7. PL/Perl事件触发器
42.8. 后台PL/Perl
43. PL/Python - Python 过程语言
43.1. Python 2 vs. Python 3
43.2. PL/Python 函数
43.3. 数据值
43.4. 共享数据
43.5. 匿名代码块
43.6. 触发器函数
43.7. 数据库访问
43.8. 明确的子事务
43.9. 实用函数
43.10. 环境变量
44. 服务器编程接口
44.1. 接口函数
44.2. 接口支持函数
44.3. 内存管理
44.4. 数据改变的可见性
44.5. 例子
45. 后台工作者进程
46. 逻辑解码
46.1. 逻辑解码的例子
46.2. 逻辑解码概念
46.3. 流复制协议接口
46.4. 逻辑解码的 SQL 接口
46.5. 与逻辑解码相关的系统目录
46.6. 逻辑解码输出插件
46.7. 逻辑解码输出写入器
46.8. 逻辑解码的同步复制支持
47. 复制进度跟踪