V. 服务器编程

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

Table of Contents
35. 扩展 SQL
35.1. 扩展性如何工作
35.2. PostgreSQL类型系统
35.3. 用户定义的函数
35.4. 查询语言(SQL)函数
35.5. 函数重载
35.6. Function Volatility Categories
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. 一个完整的事件触发器实例
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. Overview
41.2. PL/Tcl Functions and Arguments
41.3. Data Values in PL/Tcl
41.4. Global Data in PL/Tcl
41.5. Database Access from PL/Tcl
41.6. Trigger Procedures in PL/Tcl
41.7. Modules and the unknown Command
41.8. Tcl Procedure Names
42. PL/Perl - Perl Procedural Language
42.1. PL/Perl Functions and Arguments
42.2. Data Values in PL/Perl
42.3. Built-in Functions
42.4. Global Values in PL/Perl
42.5. Trusted and Untrusted PL/Perl
42.6. PL/Perl Triggers
42.7. PL/Perl Under the Hood
43. PL/Python - Python 过程语言
43.1. Python 2 vs. Python 3
43.2. PL/Python Functions
43.3. Data Values
43.4. Sharing Data
43.5. Anonymous Code Blocks
43.6. Trigger Functions
43.7. Database Access
43.8. Explicit Subtransactions
43.9. Utility Functions
43.10. Environment Variables
44. 服务器编程接口
44.1. 接口函数
44.2. Interface Support Functions
44.3. Memory Management
44.4. Visibility of Data Changes
44.5. 例子
45. 后台工作者进程