这部分关于使用用户定义的函数、数据类型、触发器等扩展服务器功能。这些是高级主题,读者应该在理解了有关PostgreSQL的所有其他用户文档之后才阅读这些主题。这一部分的后面一些章节描述PostgreSQL发布中可用的服务器端编程语言,以及与服务器端编程语言相关的一般性问题。在深入研究服务器端编程语言的材料之前,请至少阅读第 37 章中前几节(覆盖函数)。
目录
- 37. 扩展 SQL
- 37.1. 扩展性如何工作
- 37.2. PostgreSQL类型系统
- 37.3. 用户定义的函数
- 37.4. 用户定义的过程
- 37.5. 查询语言(SQL)函数
- 37.6. 函数重载
- 37.7. 函数易变性分类
- 37.8. 过程语言函数
- 37.9. 内部函数
- 37.10. C 语言函数
- 37.11. 函数优化信息
- 37.12. 用户定义的聚集
- 37.13. 用户定义的类型
- 37.14. 用户定义的操作符
- 37.15. 操作符优化信息
- 37.16. 索引的接口扩展
- 37.17. 打包相关对象到一个扩展中
- 37.18. 扩展的构建基础设施
- 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.
INSERT
、UPDATE
和DELETE
上的规则 - 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. 触发器函数
- 42.11. PL/pgSQL的内部
- 42.12. PL/pgSQL开发提示
- 42.13. 从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. 事务管理
- 43.11. PL/Tcl配置
- 43.12. 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. 实用函数
- 45.11. 环境变量
- 46. 服务器编程接口
- 46.1. 接口函数
- 46.2. 接口支持函数
- 46.3. 内存管理
- 46.4. 事务管理
- 46.5. 数据改变的可见性
- 46.6. 例子
- 47. 后台工作者进程
- 48. 逻辑解码
- 48.1. 逻辑解码的例子
- 48.2. 逻辑解码概念
- 48.3. 流复制协议接口
- 48.4. 逻辑解码的 SQL 接口
- 48.5. 与逻辑解码相关的系统目录
- 48.6. 逻辑解码输出插件
- 48.7. 逻辑解码输出写入器
- 48.8. 逻辑解码的同步复制支持
- 49. 复制进度追踪