大约 4 分钟
这部分关于使用用户定义的函数、数据类型、触发器等扩展服务器功能。这些是高级主题,读者应该在理解了有关PostgreSQL的所有其他用户文档之后才阅读这些主题。这一部分的后面一些章节描述PostgreSQL发布中可用的服务器端编程语言,以及与服务器端编程语言相关的一般性问题。在深入研究服务器端编程语言的材料之前,请至少阅读第 38 章中前几节(覆盖函数)。
目录
[38.2. PostgreSQL类型系统](extend-type-system.md)
[38.3. 用户定义的函数](xfunc.md)
[38.4. 用户定义的过程](xproc.md)
[38.5. 查询语言(SQL)函数](xfunc-sql.md)
[38.6. 函数重载](xfunc-overload.md)
[38.7. 函数易变性分类](xfunc-volatility.md)
[38.8. 过程语言函数](xfunc-pl.md)
[38.9. 内部函数](xfunc-internal.md)
[38.10. C 语言函数](xfunc-c.md)
[38.11. 用户定义的聚集](xaggr.md)
[38.12. 用户定义的类型](xtypes.md)
[38.13. 用户定义的操作符](xoper.md)
[38.14. 操作符优化信息](xoper-optimization.md)
[38.15. 索引的接口扩展](xindex.md)
[38.16. 打包相关对象到一个扩展中](extend-extensions.md)
[38.17. 扩展的构建基础设施](extend-pgxs.md)
[39.2. 数据改变的可见性](trigger-datachanges.md)
[39.3. 用 C 编写触发器函数](trigger-interface.md)
[39.4. 一个完整的触发器实例](trigger-example.md)
[40.2. 事件触发器触发矩阵](event-trigger-matrix.md)
[40.3. 用 C 编写事件触发器函数](event-trigger-interface.md)
[40.4. 一个完整的事件触发器例子](event-trigger-example.md)
[40.5. 一个表重写事件触发器例子](event-trigger-table-rewrite-example.md)
[41.2. 视图和规则系统](rules-views.md)
[41.3. 物化视图](rules-materializedviews.md)
[41.4. `INSERT`、`UPDATE`和`DELETE`上的规则](rules-update.md)
[41.5. 规则和权限](rules-privileges.md)
[41.6. 规则和命令状态](rules-status.md)
[41.7. 规则 vs 触发器](rules-triggers.md)
43. PL/pgSQL - SQL过程语言 : 43.1. 综述
[43.2. PL/pgSQL的结构](plpgsql-structure.md)
[43.3. 声明](plpgsql-declarations.md)
[43.4. 表达式](plpgsql-expressions.md)
[43.5. 基本语句](plpgsql-statements.md)
[43.6. 控制结构](plpgsql-control-structures.md)
[43.7. 游标](plpgsql-cursors.md)
[43.8. 事务管理](plpgsql-transactions.md)
[43.9. 错误和消息](plpgsql-errors-and-messages.md)
[43.10. 触发器函数](plpgsql-trigger.md)
[43.11. PL/pgSQL的内部](plpgsql-implementation.md)
[43.12. PL/pgSQL开发提示](plpgsql-development-tips.md)
[43.13. 从Oracle PL/SQL 移植](plpgsql-porting.md)
44. PL/Tcl - Tcl 过程语言 : 44.1. 概述
[44.2. PL/Tcl 函数和参数](pltcl-functions.md)
[44.3. PL/Tcl 中的数据值](pltcl-data.md)
[44.4. PL/Tcl 中的全局数据](pltcl-global.md)
[44.5. 从 PL/Tcl 访问数据库](pltcl-dbaccess.md)
[44.6. PL/Tcl 中的触发器函数](pltcl-trigger.md)
[44.7. PL/Tcl 中的事件触发器函数](pltcl-event-trigger.md)
[44.8. PL/Tcl 中的错误处理](pltcl-error-handling.md)
[44.9. PL/Tcl中的显式子事务](pltcl-subtransactions.md)
[44.10. 事务管理](pltcl-transactions.md)
[44.11. PL/Tcl配置](pltcl-config.md)
[44.12. Tcl 过程名](pltcl-procnames.md)
45. PL/Perl - Perl 过程语言 : 45.1. PL/Perl 函数和参数
[45.2. PL/Perl 中的数据值](plperl-data.md)
[45.3. 内建函数](plperl-builtins.md)
[45.4. PL/Perl 中的全局值](plperl-global.md)
[45.5. 可信的和不可信的 PL/Perl](plperl-trusted.md)
[45.6. PL/Perl 触发器](plperl-triggers.md)
[45.7. PL/Perl 事件触发器](plperl-event-triggers.md)
[45.8. PL/Perl 下面的东西](plperl-under-the-hood.md)
46. PL/Python - Python 过程语言 : 46.1. Python 2 vs. Python 3
[46.2. PL/Python 函数](plpython-funcs.md)
[46.3. 数据值](plpython-data.md)
[46.4. 共享数据](plpython-sharing.md)
[46.5. 匿名代码块](plpython-do.md)
[46.6. 触发器函数](plpython-trigger.md)
[46.7. 数据库访问](plpython-database.md)
[46.8. 显式子事务](plpython-subtransaction.md)
[46.9. 事务管理](plpython-transactions.md)
[46.10. 实用函数](plpython-util.md)
[46.11. 环境变量](plpython-envar.md)
[47.2. 接口支持函数](spi-interface-support.md)
[47.3. 内存管理](spi-memory.md)
[47.4. 事务管理](spi-transaction.md)
[47.5. 数据改变的可见性](spi-visibility.md)
[47.6. 例子](spi-examples.md)
[49.2. 逻辑解码概念](logicaldecoding-explanation.md)
[49.3. 流复制协议接口](logicaldecoding-walsender.md)
[49.4. 逻辑解码的 SQL 接口](logicaldecoding-sql.md)
[49.5. 与逻辑解码相关的系统目录](logicaldecoding-catalogs.md)
[49.6. 逻辑解码输出插件](logicaldecoding-output-plugin.md)
[49.7. 逻辑解码输出写入器](logicaldecoding-writer.md)
[49.8. 逻辑解码的同步复制支持](logicaldecoding-synchronous.md)
