↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4

第 38 章 扩展 SQL

目录

38.1. 可扩展性如何运作
38.2. PostgreSQL 类型系统
38.2.1. 基础类型
38.2.2. 容器类型
38.2.3. 域
38.2.4. 伪类型
38.2.5. 多态类型
38.3. 用户定义的函数
38.4. 用户定义的过程
38.5. 查询语言(SQL)函数
38.5.1. SQL 函数的参数
38.5.2. 基础类型上的 SQL 函数
38.5.3. 复合类型上的 SQL 函数
38.5.4. 带有输出参数的 SQL 函数
38.5.5. 带有输出参数的 SQL 过程
38.5.6. 带有可变数量参数的 SQL 函数
38.5.7. 带有参数默认值的 SQL 函数
38.5.8. SQL 函数作为表来源
38.5.9. 返回集合的 SQL 函数
38.5.10. 返回 TABLE 的 SQL 函数
38.5.11. 多态 SQL 函数
38.5.12. 带有排序规则的 SQL 函数
38.6. 函数重载
38.7. 函数易变性分类
38.8. 过程语言函数
38.9. 内部函数
38.10. C 语言函数
38.10.1. 动态载入
38.10.2. C 语言函数中的基础类型
38.10.3. 版本 1 的调用约定
38.10.4. 编写代码
38.10.5. 编译和链接动态装载函数
38.10.6. 复合类型参数
38.10.7. 返回行(复合类型)
38.10.8. 返回集合
38.10.9. 多态参数和返回类型
38.10.10. 共享内存与 LWLocks
38.10.11. 把 C++ 用于可扩展性
38.11. 函数优化信息
38.12. 用户定义的聚合
38.12.1. 移动聚合模式
38.12.2. 多态和可变参数聚合
38.12.3. 有序集聚合
38.12.4. 部分聚合
38.12.5. 聚合的支持函数
38.13. 用户定义的类型
38.13.1. TOAST 注意事项
38.14. 用户定义的操作符
38.15. 操作符优化信息
38.15.1. COMMUTATOR
38.15.2. NEGATOR
38.15.3. RESTRICT
38.15.4. JOIN
38.15.5. HASHES
38.15.6. MERGES
38.16. 索引扩展接口
38.16.1. 索引方法和操作符类
38.16.2. 索引方法策略
38.16.3. 索引方法支持例程
38.16.4. 示例
38.16.5. 操作符类和操作符族
38.16.6. 系统对操作符类的依赖
38.16.7. 排序操作符
38.16.8. 操作符类的特殊特性
38.17. 将相关对象打包成扩展
38.17.1. 扩展文件
38.17.2. 扩展的可重定位性
38.17.3. 扩展配置表
38.17.4. 扩展更新
38.17.5. 使用更新脚本安装扩展
38.17.6. 扩展的安全注意事项
38.17.7. 扩展示例
38.18. 扩展构建基础设施

在接下来的各节中,我们将讨论如何通过增加以下内容来扩展 PostgreSQL SQL 查询语言:

38.1. 可扩展性如何运作 #

PostgreSQL 之所以具有可扩展性,是因为其运作由系统目录驱动。如果你熟悉标准的关系数据库系统,就会知道它们把有关数据库、表、列等的信息存储在通常所说的系统目录中(有些系统把这称为数据字典)。这些目录对用户而言看起来就像普通表一样,但 DBMS 会在其中保存自己的内部管理信息。PostgreSQL 与标准关系数据库系统的一个关键差别是,PostgreSQL 在目录中存储的信息要多得多:不仅有关于表和列的信息,还有关于数据类型、函数、访问方法等的信息。这些表可以由用户修改,而 PostgreSQL 又是基于这些表来运行的,这意味着 PostgreSQL 可以由用户扩展。相比之下,传统数据库系统只能通过修改源代码中的硬编码过程,或加载由 DBMS 供应商专门编写的模块来扩展。

此外,PostgreSQL 服务器还能通过动态加载把用户编写的代码纳入自身。也就是说,用户可以指定一个实现了新类型或新函数的目标代码文件(例如共享库),而 PostgreSQL 会在需要时加载它。把用 SQL 编写的代码加入服务器就更为简单了。这种能够“即时”修改自身行为的能力,使 PostgreSQL 特别适合用于新应用和新存储结构的快速原型设计。

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.