The catalog pg_opclass defines index access method operator classes. Each operator class defines semantics for index columns of a particular data type and a particular index access method. Note that there can be multiple operator classes for a given data type/access method combination, thus supporting multiple behaviors.
Operator classes are described at length in Section 31.14.
Table 41-22. pg_opclass Columns
|opcamid||oid||pg_am.oid||Index access method operator class is for|
|opcname||name||Name of this operator class|
|opcnamespace||oid||pg_namespace.oid||Namespace of this operator class|
|opcowner||int4||pg_shadow.usesysid||Operator class owner|
|opcintype||oid||pg_type.oid||Data type that the operator class indexes|
|opcdefault||bool||True if this operator class is the default for opcintype|
|opckeytype||oid||pg_type.oid||Type of data stored in index, or zero if same as opcintype|
The majority of the information defining an operator class is actually not in its pg_opclass row, but in the associated rows in pg_amop and pg_amproc. Those rows are considered to be part of the operator class definition — this is not unlike the way that a relation is defined by a single pg_class row plus associated rows in pg_attribute and other tables.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.