部分 V. 服务器编程

这部分关于使用用户定义的函数、数据类型、触发器等扩展服务器功能。这些是高级主题,读者应该在理解了有关PostgreSQL的所有其他用户文档之后才阅读这些主题。这一部分的后面一些章节描述PostgreSQL发布中可用的服务器端编程语言,以及与服务器端编程语言相关的一般性问题。在钻入服务器端编程语言的材料之前,请至少阅读第 37 章中前几节(覆盖函数)。

目录

37. 扩展 SQL
37.1. 扩展性如何工作
37.2. PostgreSQL类型系统
37.3. 用户定义的函数
37.4. 查询语言(SQL)函数
37.5. 函数重载
37.6. 函数易变性分类
37.7. 过程语言函数
37.8. 内部函数
37.9. C 语言函数
37.10. 用户定义的聚集
37.11. 用户定义的类型
37.12. 用户定义的操作符
37.13. 操作符优化信息
37.14. 索引的接口扩展
37.15. 打包相关对象到一个扩展中
37.16. 扩展的构建基础设施
38. 触发器
38.1. 触发器行为概述
38.2. 数据改变的可见性
38.3. 用 C 编写触发器函数
38.4. 一个完整的触发器实例
39. 事件触发器
39.1. 事件触发器行为总览
39.2. 事件触发器触发矩阵
39.3. 用 C 编写事件触发器函数
39.4. 一个完整的事件触发器例子
39.5. 一个表重写事件触发器例子
40. 规则系统
40.1. 查询树
40.2. 视图和规则系统
40.3. 物化视图
40.4. INSERTUPDATEDELETE上的规则
40.5. 规则和权限
40.6. 规则和命令状态
40.7. 规则 vs 触发器
41. 过程语言
41.1. 安装过程语言
42. PL/pgSQL - SQL过程语言
42.1. 综述
42.2. PL/pgSQL的结构
42.3. 声明
42.4. 表达式
42.5. 基本语句
42.6. 控制结构
42.7. 游标
42.8. 错误和消息
42.9. 触发器过程
42.10. PL/pgSQL的内部
42.11. PL/pgSQL开发提示
42.12. 从Oracle PL/SQL 移植
43. PL/Tcl - Tcl 过程语言
43.1. 概述
43.2. PL/Tcl 函数和参数
43.3. PL/Tcl 中的数据值
43.4. PL/Tcl 中的全局数据
43.5. 从 PL/Tcl 访问数据库
43.6. PL/Tcl 中的触发器过程
43.7. PL/Tcl 中的事件触发器过程
43.8. PL/Tcl 中的错误处理
43.9. PL/Tcl中的显式子事务
43.10. PL/Tcl 配置
43.11. Tcl 过程名
44. PL/Perl - Perl 过程语言
44.1. PL/Perl 函数和参数
44.2. PL/Perl 中的数据值
44.3. 内建函数
44.4. PL/Perl 中的全局值
44.5. 可信的和不可信的 PL/Perl
44.6. PL/Perl 触发器
44.7. PL/Perl 事件触发器
44.8. PL/Perl 下面的东西
45. PL/Python - Python 过程语言
45.1. Python 2 vs. Python 3
45.2. PL/Python 函数
45.3. 数据值
45.4. 共享数据
45.5. 匿名代码块
45.6. 触发器函数
45.7. 数据库访问
45.8. 显式子事务
45.9. 实用函数
45.10. 环境变量
46. 服务器编程接口
46.1. 接口函数
46.2. 接口支持函数
46.3. 内存管理
46.4. 数据改变的可见性
46.5. 例子
47. 后台工作者进程
48. 逻辑解码
48.1. 逻辑解码的例子
48.2. 逻辑解码概念
48.3. 流复制协议接口
48.4. 逻辑解码的 SQL 接口
48.5. 与逻辑解码相关的系统目录
48.6. 逻辑解码输出插件
48.7. 逻辑解码输出写入器
48.8. 逻辑解码的同步复制支持
49. 复制进度追踪