跳至主要內容

KlustronDB大约 4 分钟

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

目录

38. 扩展 SQL : 38.1. 扩展性如何工作

[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. 触发器 : 39.1. 触发器行为概述

[39.2. 数据改变的可见性](trigger-datachanges.md)

[39.3. 用 C 编写触发器函数](trigger-interface.md)

[39.4. 一个完整的触发器实例](trigger-example.md)

40. 事件触发器 : 40.1. 事件触发器行为总览

[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. 规则系统 : 41.1. 查询树

[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)

42. 过程语言 : 42.1. 安装过程语言

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. 服务器编程接口 : 47.1. 接口函数

[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)

48. 后台工作者进程

49. 逻辑解码 : 49.1. 逻辑解码的例子

[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)

50. 复制进度追踪