Table of Contents
在接下来的各节中,我们将讨论如何通过增加以下内容来扩展 PostgreSQL SQL 查询语言:
函数(从 Section 36.3 开始)
聚合(从 Section 36.12 开始)
数据类型(从 Section 36.13 开始)
操作符(从 Section 36.14 开始)
索引的操作符类(从 Section 36.16 开始)
相关对象的包(从 Section 36.17 开始)
PostgreSQL 之所以具有可扩展性,是因为其 运作由系统目录驱动。如果你熟悉标准的关系数据库系统,就会知道它们把 有关数据库、表、列等的信息存储在通常所说的系统目录中(有些系统把这 称为数据字典)。这些目录对用户而言看起来就像普通表一样,但 DBMS 会在其中保存自己的内部管理信息。 PostgreSQL 与标准关系数据库系统的一个关键差别是, PostgreSQL 在目录中存储的信息要多得多:不仅有关于表和列的信息,还有关于数据 类型、函数、访问方法等的信息。这些表可以由用户修改,而 PostgreSQL 又是基于这些表来运行的,这意味着 PostgreSQL 可以由用户扩展。相比之下,传统数据库 系统通常只能通过修改源代码中的硬编码过程,或加载由 DBMS 供应商专门编写的模块来扩展。
此外,PostgreSQL 服务器还能通过动态加载把用户 编写的代码纳入自身。也就是说,用户可以指定一个实现了新类型或新函数 的目标代码文件(例如共享库),而 PostgreSQL 会在需要时加载它。把用 SQL 编写的代码加入服务器就更 为简单了。这种能够“即时”修改自身行为的能力,使 PostgreSQL 特别适合用于新应用和新存储结构的快速 原型设计。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。