pg_opclass 定义索引访问方法操作符表。 每个操作符表为一种特定数据类型和一种特定索引访问方法定义索引字段的语义。 请注意对于一种指定的数据类型/访问方法组合,可能会有多种操作符表,这样就可以支持多种行为。
操作符表在 Section 31.14 里有比较详细的描述。
Table 41-22. pg_opclass 字段
名字 | 类型 | 参考 | 描述 |
---|---|---|---|
opcamid | oid | pg_am.oid | 操作符表所服务的索引访问方法 |
opcname | name | 这个操作符表的名字 | |
opcnamespace | oid | pg_namespace.oid | 这个操作符表的名字空间 |
opcowner | int4 | pg_shadow.usesysid | 操作符表所有人 |
opcintype | oid | pg_type.oid | 操作符表的输入数据类型 |
opcdefault | bool | 如果操作符表是opcintype(见前一个字段)的缺省,则为真 | |
opckeytype | oid | pg_type.oid | 索引数据的类型,如果和opcintype相同则为零 |
定义一个操作符表的大部分信息实际上并不在它的 pg_opclass 行里,而是在相关的 pg_amop 和 pg_amproc 行里。我们认为这些行是定义操作符表的一部分 — 这和用一行 pg_class 加上在 pg_attribute 和其他表中的行定义一个关系(表)没啥不同。