历史版本。 PostgreSQL 6.4 已结束支持。 请参阅 当前版本手册.
38.3. 关于 Postgres 系统目录
介绍了基本的可扩展性概念之后,我们现在可以看看目录实际上是如何组织的。现在可以跳过本节,但后面的某些章节如果没有这里给出的信息将无法理解,所以请给这一页做个标记以便以后参考。所有系统目录的名称都以 pg_ 开头。下面的类包含可能对最终用户有用的信息。(还有很多其他系统目录,但很少需要直接查询它们。)
表 38.1. Postgres 系统目录
| 目录名 | 描述 |
|---|---|
| pg_database | 数据库 |
| pg_class | 类 |
| pg_attribute | 类属性 |
| pg_index | 辅助索引 |
| pg_proc | 过程(C 和 SQL 都是) |
| pg_type | 类型(基本和复合都是) |
| pg_operator | 操作符 |
| pg_aggregate | 聚集和聚集函数 |
| pg_am | 访问方法 |
| pg_amop | 访问方法操作符 |
| pg_amproc | 访问方法支持函数 |
| pg_opclass | 访问方法操作符类 |
图 38.1. Postgres 的主要系统目录

在后面的几节中,我们将给出系统目录上的各种连接查询,它们显示我们扩展系统所需的信息。看这张图应该会让其中一些连接查询(它们通常是三路或四路连接)更容易理解,因为你将能看到查询中使用的属性在其他类中构成外键。
许多不同的特性(类、属性、函数、类型、访问方法等)在这个模式中紧密集成。一条简单的 create 命令就可能修改其中许多目录。
类型和过程是这个模式的核心。
注意
我们或多或少可以互换地使用过程和函数这两个词。
几乎每个目录都包含对这两个类之一或两者的实例的引用。例如,Postgres 经常使用类型签名(例如函数和操作符的签名)来标识其他目录的唯一实例。
有许多属性和关系的含义是显而易见的,但也有许多(特别是那些与访问方法有关的)并非如此。pg_am、pg_amop、pg_amproc、pg_operator 和 pg_opclass 之间的关系特别难以理解,我们将在讨论了基本扩展之后(在把类型和操作符接口到索引的一节中)深入描述它们。