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