💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# V. 服务器端编程 这部分是关于用户怎样通过增加用户定义的类型、操作符、聚集、查询语言和编程语言函数来扩展服务器功能。 这些是高级主题,可能需要在阅读完并理解所有其它 PostgreSQL 手册之后才能阅读。这部分后面的章节还描述了在PostgreSQL 里的服务器端编程语言。我们至少要读过[Chapter 35](#calibre_link-828)的头几节才能深入阅读有关服务器端编程语言的材料。 **Table of Contents** + 35\. 扩展SQL + 35.1\. 扩展性是如何实现的 + 35.2\. PostgreSQL类型系统 + 35.3\. 用户定义的函数 + 35.4\. 查询语言(SQL)函数 + 35.5\. 函数重载 + 35.6\. 函数易失性范畴 + 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\. 在 `INSERT`, `UPDATE`, 和 `DELETE`上的规则 + 38.5\. 规则和权限 + 38.6\. 规则和命令状态 + 38.7\. 规则与触发器的比较 + 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\. 概述 + 41.2\. PL/Tcl 函数和参数 + 41.3\. PL/Tcl里的数据值 + 41.4\. PL/Tcl里的全局量 + 41.5\. 在PL/Tcl里访问数据库 + 41.6\. PL/Tcl里的触发器过程 + 41.7\. 模块和`unknown`的命令 + 41.8\. Tcl 过程名字 + 42\. PL/Perl - Perl 过程语言 + 42.1\. PL/Perl 函数和参数 + 42.2\. PL/Perl里的数据值 + 42.3\. 内置函数 + 42.4\. PL/Perl里的全局变量 + 42.5\. 可信的和不可信的 PL/Perl + 42.6\. PL/Perl 触发器 + 42.7\. 后台PL/Perl + 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\. 接口支持函数 + 44.3\. 内存管理 + 44.4\. 数据改变的可视性 + 44.5\. 例子 + 45\. 后台工作进程